2015-03-19 10 views
83

Ich merke, dass Laravel Cache-Ansichten, die in ~/storage/framework/views gespeichert ist. Überstunden, sie können meinen Platz auffressen. Wie lösche ich sie? Gibt es einen Befehl, der könnte? Ich versuchte php artisan cache:clear, aber es löscht nicht den Ansichtencache. Damit muss ich die Dateien im genannten Ordner manuell löschen.Laravel 5 klare Ansichten Cache

Wie deaktiviere ich auch das Zwischenspeichern der Ansichten?

+2

"Überstunden, sie können meinen Platz auffressen." Unwahrscheinlich. Eine große Laravel-App, die ich pflege, hat ungefähr 300 KB Cache-Ansichten für ungefähr 500 Routen. Sie werden niemals aufgrund von zwischengespeicherten Ansichten auf einem modernen Server ausgehen. – ceejayoz

+2

Aber das Problem ist, dass mein Hosting-Provider nicht durch Speicherplatznutzung begrenzt ist. Stattdessen ist es durch die Anzahl der Dateien begrenzt, die Sie haben. Es ist also ein Problem für mich. – basagabi

+4

Das ist bizarr, und Ihre paar hundert Dateien in 'storage/framework/views' ist nichts neben den Tausenden von Dateien in 'vendor'. Holen Sie sich einen Host, der keine absurden wahnsinnigen Einschränkungen hat. Begrenzung nach Anzahl der Dateien? WTF ?! – ceejayoz

Antwort

6

Momentan gibt es keine Ansicht: Befehl löschen. Für Laravel 4 kann Ihnen das wahrscheinlich helfen: https://gist.github.com/cjonstrup/8228165

Deaktivierung der Zwischenspeicherung kann durch Überspringen von Blade erfolgen. View-Caching ist abgeschlossen, da das Blade-Compiling jedes Mal Zeitverschwendung ist.

+0

Nur ein Kopf, dieser Befehl ist für Laravel 4 entwickelt. – user3158900

+0

Ich habe eine gute Erklärung hier http://stackoverflow.com/questions/31455829/laravel-5-clear-cache-in-shared-hosting-server –

152

Es gibt jetzt einen php artisan view:clear Befehl für diese Aufgabe seit Laravel 5.1

+0

Gut zu wissen. Eine Sache, die ich im Laufe der Zeit feststellen kann, ist, dass der Cache unter dem View-Ordner gelöscht wird. Gibt es etwas im Code, das sie in xx Tagen löscht? – basagabi

+0

Ich glaube, es ist schon ein bisschen länger :) – Oddman

+0

Danke für den heads-up –

4

Um alle Handwerker Befehl zu erhalten, geben Sie ...

php artisan 

Ist das nicht keine Ahnung, wie bestimmten Handwerker Befehl benutzen? Fügen Sie einfach „help“ (siehe unten)

php artisan help view:clear 
+0

Das war wirklich sehr hilfreich, warum ist es downvoted? – Krabats

+0

Dank @Krabats weiß das zu schätzen. "Unterrichten Sie, wie man fischt, anstatt nur einen Fisch zu geben". Aber manche Leute denken nicht so –

2

Um Ihre weitere Frage, wie deaktivieren Ansichten Caching zu beantworten:

Sie können dies tun, indem sie automatisch die Dateien im Ordner für jede Anforderung mit dem Befehl löschen php artisan view:clear von DilipGurung erwähnt. Hier ist ein Beispiel Middleware Klasse von 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); 
    } 
} 

aber Sie beachten, dass Larevel werden die Dateien im Verzeichnis/app/storage/Ansichten Ordner neu kompilieren, wenn die Zeit auf die Ansichten Dateien früher als die Zeit auf der PHP-Klinge Dateien für das Layout. THus, ich kann nicht wirklich an ein Szenario denken, wo dies notwendig wäre.