Laravel 5 Clear Views Cache


168

Ho notato che le viste della cache di Laravel sono memorizzate in ~/storage/framework/views.Nel tempo, riescono a divorare il mio spazio. Come li elimino? C'è qualche comando che potrebbe? Ho provato php artisan cache:clear,ma non svuota la cache delle viste. Con ciò, devo eliminare manualmente i file nella suddetta cartella.

Inoltre, come posso disabilitare la memorizzazione nella cache delle viste?


3
"Straordinario, riescono a divorare il mio spazio." Improbabile. Una grande app Laravel che conservo ha circa 300 KB di visualizzazioni memorizzate nella cache per circa 500 route. Non finirai mai a causa delle viste memorizzate nella cache su qualsiasi server moderno.
Ceejayoz,

3
Ma il problema è che il mio provider di hosting non limita l'utilizzo dello spazio su disco. Invece, sta limitando il numero di file che hai. Quindi è un problema per me.
Basagabi,

5
È bizzarro e i tuoi duecento file storage/framework/viewsnon sono nulla a parte le migliaia di file in vendor. Ottieni un host che non abbia limiti assurdi e folli come quello. Limitando il numero di file? WTF ?!
Ceejayoz,

Potresti consigliare un ottimo hosting per questo? Preferibilmente hosting condiviso. Non sono sicuro di poter condividere il nome del mio attuale provider di hosting. È una grande impresa, però.
basagabi,

1
Andrei da qualche parte come Heroku se non sei troppo tecnico, o Amazon Web Services se lo sei. Se il tuo host attuale limita davvero il numero di file e non lo spazio totale utilizzato, sono pazzi.
Ceejayoz,

Risposte:


278

Ora esiste un php artisan view:clearcomando per questa attività da Laravel 5.1


Buono a sapersi. Una cosa che noto, nel tempo, la cache nella cartella delle visualizzazioni viene eliminata. C'è qualcosa nel codice che li elimina in xx giorni?
basagabi,

Credo che sia stato un po 'più lungo di così :)
Oddman,

29

Per ottenere tutto il comando artigianale, digita ...

php artisan

Se si desidera cancellare la cache di visualizzazione, basta usare:

php artisan view:clear

Se non sai come usare un comando artigianale specifico, aggiungi "aiuto" (vedi sotto)

php artisan help view:clear

11

prova questo comando qui sotto:

sudo php artisan cache:clear

sudo php artisan view:clear

sudo php artisan config:cache

2
Maker sicuro se si artisan config:cacheche tutte le vostre .envvariabili sono accessibili via config(), non env()altrimenti sarà nullo.
FlashJordan

1
@FlashJordan Vorrei aver letto il tuo commento prima di eseguire config: cache. lol. Per chiunque esegua config: cache alla cieca come ho fatto io, elimina config.php da bootstrap / cache.
Tarek Adam,


6

Per rispondere alla tua domanda aggiuntiva su come disabilitare la memorizzazione nella cache delle visualizzazioni:

Puoi farlo cancellando automaticamente i file nella cartella per ogni richiesta con il comando php artisan view:clearmenzionato da DilipGurung. Ecco un esempio di classe Middleware da 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);
    }
}

Tuttavia, si può notare che Larevel ricompilerà i file nella cartella / app / storage / views ogni volta che il tempo nei file delle viste è precedente a quello dei file del pannello PHP per il layout. Pertanto, non riesco davvero a pensare a uno scenario in cui sarebbe necessario farlo.


2

Cancella cache in Laravel (Terminale)

Cancella cache dell'applicazione

php artisan cache:clear

Cancella la route route

php artisan route:clear

Cancella la cache di configurazione

php artisan config:clear 

Cancella i file di visualizzazione compilati

php artisan view:clear 

Cancella cache nel browser La maggior parte dei provider di hosting condiviso non fornisce l'accesso SSH ai sistemi. In tal caso, puoi cancellare la cache di Laravel chiamando l'URL nel browser. Puoi semplicemente inserire il seguente codice nei tuoi percorsi / web.php.

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

Ecco il link della risorsa https://tecadmin.net/clear-cache-laravel-5/


1

utilizzare il comando Below nel terminale

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

0

Ecco un aiuto che ho scritto per risolvere questo problema per i miei progetti. Rende super semplice e facile essere in grado di cancellare tutto rapidamente e con un solo comando.

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


Dai un'occhiata allo spazio dei nomi utilizzato. assicurati che sia nel percorso corretto della cartella o se l'hai modificato. assicurati di aggiornarlo di conseguenza. @samjadps
lzoesch,

Ho aggiornato lo spazio dei nomi da parte mia. Dovrebbe funzionare ora per te senza fare nulla. Assicurati solo che sia impostato nella cartella console / comandi.
Lzoesch,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.