Laravel 5 Wyczyść pamięć podręczną widoków


168

Zauważyłem, że widoki pamięci podręcznej Laravel są przechowywane w ~/storage/framework/views.Z biegiem czasu pochłaniają moją przestrzeń. Jak je usunąć? Czy jest jakieś polecenie, które mogłoby to zrobić? Próbowałem, php artisan cache:clear,ale nie czyści pamięci podręcznej widoków. Dzięki temu muszę ręcznie usunąć pliki w tym folderze.

Jak również wyłączyć buforowanie widoków?


3
"Nadgodziny, mogą zająć moją przestrzeń." Mało prawdopodobne. Duża aplikacja Laravel, którą utrzymuję, ma około 300 KB widoków w pamięci podręcznej dla około 500 tras. Nigdy nie zabraknie Ci widoków z pamięci podręcznej na żadnym nowoczesnym serwerze.
ceejayoz

3
Problem polega jednak na tym, że mój dostawca hostingu nie ogranicza wykorzystania miejsca na dysku. Zamiast tego ogranicza liczbę posiadanych plików. Więc jest to dla mnie problem.
basagabi

5
To dziwne, a twoje kilkaset plików storage/framework/viewsto nic innego jak tysiące plików vendor. Zdobądź hosta, który nie ma takich absurdalnych, szalonych ograniczeń. Ograniczasz liczbę plików? WTF ?!
ceejayoz

Czy mógłbyś polecić do tego świetny hosting? Preferowany hosting współdzielony. Nie jestem pewien, czy mogę udostępniać nazwę mojego obecnego dostawcy usług hostingowych. Ale to duża firma.
basagabi

1
Wybrałbym miejsce takie jak Heroku, jeśli nie jesteś zbyt techniczny, lub Amazon Web Services, jeśli jesteś. Jeśli twój obecny host naprawdę ogranicza liczbę plików, a nie całkowitą używaną przestrzeń, są szalone.
ceejayoz

Odpowiedzi:


278

Istnieje teraz php artisan view:clearpolecenie dla tego zadania od wersji Laravel 5.1


Dobrze wiedzieć. Zauważyłem, że z czasem pamięć podręczna w folderze widoków zostaje usunięta. Czy jest coś w kodzie, co usuwa je za xx dni?
basagabi


29

Aby uzyskać wszystkie polecenia rzemieślnika, wpisz ...

php artisan

Jeśli chcesz wyczyścić pamięć podręczną widoku, po prostu użyj:

php artisan view:clear

Jeśli nie wiesz, jak użyć konkretnego polecenia rzemieślnika, po prostu dodaj „pomoc” (patrz poniżej)

php artisan help view:clear

11

spróbuj tego polecenia:

sudo php artisan cache:clear

sudo php artisan view:clear

sudo php artisan config:cache

2
Ekspres pewien, czy artisan config:cacheto wszystko ze swoich .envzmiennych są dostępne przez config()nie env()albo oni być null.
FlashJordan

1
@FlashJordan Chciałbym przeczytać Twój komentarz przed uruchomieniem config: cache. lol. Dla każdego, kto uruchamia config: cache tak samo ślepo jak ja, po prostu usuń config.php z bootstrap / cache.
Tarek Adam


6

Aby odpowiedzieć na dodatkowe pytanie, jak wyłączyć buforowanie widoków:

Możesz to zrobić, automatycznie usuwając pliki w folderze dla każdego żądania za pomocą polecenia php artisan view:clearwymienionego przez DilipGurung. Oto przykładowa klasa oprogramowania pośredniego z https://stackoverflow.com/a/38598434/2311074

<?php
namespace App\Http\Middleware;

use Artisan;
use Closure;

class ClearViewCache
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if (env('APP_DEBUG') || env('APP_ENV') === 'local') 
            Artisan::call('view:clear');

        return $next($request);
    }
}

Możesz jednak zauważyć, że Larevel przekompiluje pliki w folderze / app / storage / views za każdym razem, gdy czas wyświetlania plików widoków będzie wcześniejszy niż czas dla plików blokowych PHP dla układu. Dlatego naprawdę nie mogę wymyślić scenariusza, w którym byłoby to konieczne.


2

Wyczyść pamięć podręczną w Laravel (terminal)

Wyczyść pamięć podręczną aplikacji

php artisan cache:clear

Wyczyść pamięć podręczną tras

php artisan route:clear

Wyczyść pamięć podręczną konfiguracji

php artisan config:clear 

Wyczyść skompilowane pliki widoku

php artisan view:clear 

Wyczyść pamięć podręczną w przeglądarce Większość dostawców hostingu współdzielonego nie zapewnia dostępu do systemów za pomocą protokołu SSH. W takim przypadku możesz wyczyścić pamięć podręczną Laravel, wywołując URL w przeglądarce. Możesz po prostu umieścić poniższy kod w swoich route / web.php.

Route::get('/clear-cache', function() {
    Artisan::call('cache:clear');
    return "Cache is cleared";
});

Oto link do zasobów https://tecadmin.net/clear-cache-laravel-5/


1

użyj polecenia Below w terminalu

php artisan cache:clear
php artisan route:cache 
php artisan config:cache 
php artisan view:clear

0

Oto pomocnik, który napisałem, aby rozwiązać ten problem dla moich projektów. To sprawia, że ​​bardzo proste i łatwe jest wyczyszczenie wszystkiego szybko i za pomocą jednego polecenia.

https://github.com/Traqza/clear-everything


Spójrz na używaną przestrzeń nazw. upewnij się, że znajduje się w poprawnej ścieżce folderu lub jeśli został zmieniony. upewnij się, że odpowiednio ją zaktualizujesz. @samjadps
lzoesch

Zaktualizowałem przestrzeń nazw po mojej stronie. Powinien działać teraz, nie robiąc nic. Po prostu upewnij się, że jest ustawiony w folderze console / commands.
lzoesch
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.