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.