2015-03-19 15 views
83

Zauważam, że widoki podręczne Laravel, które są przechowywane w ~/storage/framework/views. Za nadgodziny, mogą zjeść moją przestrzeń. Jak mogę je usunąć? Czy istnieje jakieś polecenie, które mogłoby? Próbowałem php artisan cache:clear, ale nie wyczyściłem pamięci podręcznej widoków. Muszę ręcznie usunąć pliki z tego folderu.Laravel 5 cache z wyraźnymi widokami

Ponadto, jak wyłączyć buforowanie widoków?

+2

"Nadgodziny, mogą zjeść moją przestrzeń." Mało prawdopodobne. Duża aplikacja Laravel, którą utrzymuję, ma około 300 KB buforowanych widoków na około 500 tras. Nigdy nie zabraknie Ci pamięci z powodu buforowanych widoków na dowolnym nowoczesnym serwerze. – ceejayoz

+2

Ale problemem jest to, że mój dostawca usług hostingowych nie ogranicza korzystania z miejsca na dysku. Zamiast tego jest ograniczona przez liczbę plików, które masz. Jest to dla mnie problem. – basagabi

+4

To dziwne, a kilkaset plików w 'storage/framework/views' jest niczym w porównaniu z tysiącami plików w' vendor'. Zdobądź hosta, który nie ma absurdalnych, szalonych ograniczeń. Ograniczanie o liczbę plików? WTF ?! – ceejayoz

Odpowiedz

6

W tej chwili nie ma widoku: jasne polecenie. W przypadku wersji 4 może to prawdopodobnie pomóc: https://gist.github.com/cjonstrup/8228165

Wyłączenie buforowania można wykonać, pomijając ostrze. Przeglądanie pamięci podręcznej jest wykonywane, ponieważ kompilacja ostrza za każdym razem jest stratą czasu.

+0

Po prostu heads-up, polecenie to zostało opracowane dla Laravel 4. – user3158900

+0

Mam dobre wyjaśnienie tego tutaj http://stackoverflow.com/questions/31455829/laravel-5-clear-cache-in-shared-hosting-server –

152

Istnieje obecnie komenda php artisan view:clear do tego zadania, ponieważ laravel 5.1

+0

Dobrze o tym wiedzieć. Zauważam, że z czasem pamięć podręczna w folderze widoków zostanie usunięta. Czy jest coś w kodzie, które usuwa je w xx dni? – basagabi

+0

Wydaje mi się, że trwało to nieco dłużej :) – Oddman

+0

Dzięki za heads-up –

4

aby wszystkie polecenia rzemieślnik, typ ...

php artisan 

nie ma żadnego pojęcia, jak korzystać z konkretną komendę rzemieślnik? Wystarczy dodać „pomoc” (patrz niżej)

php artisan help view:clear 
+0

To naprawdę było bardzo pomocne, dlaczego jest wycofane? – Krabats

+0

Dzięki @Krabats doceniam to. "Naucz jak łowić ryby, a nie tylko dawać rybę". Ale niektórzy ludzie nie mają takiego myślenia ... _ ~ –

2

Aby odpowiedzieć na dodatkowe pytanie, jak wyłączyć widoki buforowanie:

Można to zrobić automatycznie usunąć pliki w folderze dla każdego żądania za pomocą polecenia php artisan view:clear wymienione przez DilipGurung. Oto przykład klasa Middleware 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); 
    } 
} 

Jednak można zauważyć, że Larevel będzie skompilować pliki w folderze/app/przechowywania/widoki, gdy czas na plikach poglądów jest wcześniejszy niż czas na ostrzu PHP pliki do układu. THus, nie mogę myśleć o scenariuszu, w którym byłoby to konieczne.