Laravel 5 Clear Views Cache

168

Noto que las vistas de caché de Laravel se almacenan en ~/storage/framework/views.Con el tiempo, pueden ocupar mi espacio. ¿Cómo los elimino? ¿Hay algún comando que pueda? Lo intenté php artisan cache:clear,pero no está borrando el caché de vistas. Con eso, tengo que eliminar manualmente los archivos en dicha carpeta.

Además, ¿cómo desactivo el almacenamiento en caché de vistas?

basagabi
fuente
3
"Horas extras, pueden comer mi espacio". Improbable. Una gran aplicación Laravel que mantengo tiene aproximadamente 300 KB de vistas en caché para aproximadamente 500 rutas. Nunca se acabará debido a las vistas en caché en cualquier servidor moderno.
ceejayoz
3
Pero el problema es que mi proveedor de alojamiento no está limitando el uso de espacio en disco. En cambio, está limitando por la cantidad de archivos que tiene. Entonces es un problema para mí.
basagabi
55
Eso es extraño, y sus cientos de archivos storage/framework/viewsno son nada más que los miles de archivos vendor. Consigue un host que no tenga limitaciones absurdas como esa. ¿Limitando por número de archivos? WTF ?!
ceejayoz
¿Podría recomendarme un excelente alojamiento para eso? Preferiblemente alojamiento compartido. No estoy seguro de si puedo compartir el nombre de mi proveedor de alojamiento actual. Sin embargo, es una gran comany.
basagabi
1
Me gustaría ir a algún lugar como Heroku si no eres demasiado técnico, o Amazon Web Services si lo eres. Si su host actual realmente limita la cantidad de archivos y no el espacio total utilizado, están locos.
ceejayoz

Respuestas:

278

Ahora hay un php artisan view:clearcomando para esta tarea desde Laravel 5.1

DilipGurung
fuente
Es bueno saberlo. Una cosa que noté, con el tiempo, el caché bajo la carpeta de vistas se elimina. ¿Hay algo en el código que los elimine en xx días?
basagabi
Creo que ha existido un poco más que eso :)
Oddman
29

Para obtener todo el comando artesanal, escriba ...

php artisan

Si desea borrar la vista de caché, simplemente use:

php artisan view:clear

Si no sabe cómo usar un comando artesanal específico, simplemente agregue "ayuda" (ver más abajo)

php artisan help view:clear
Jake Pucan
fuente
11

por favor intente este comando a continuación:

sudo php artisan cache:clear

sudo php artisan view:clear

sudo php artisan config:cache
Mosam Prajapati
fuente
2
Fabricante de seguro si artisan config:cacheque todas sus .envvariables se accede a través de config(), no env(), o que va a ser nula.
FlashJordan
1
@FlashJordan Ojalá hubiera leído tu comentario antes de ejecutar config: cache. jajaja Para cualquier otra persona que ejecute config: cache tan ciegamente como yo, simplemente elimine config.php de bootstrap / cache.
Tarek Adam
6

En este momento no hay vista: comando claro. Para laravel 4, esto probablemente pueda ayudarlo: https://gist.github.com/cjonstrup/8228165

La desactivación del almacenamiento en caché se puede hacer saltando la cuchilla. Ver el almacenamiento en caché se realiza porque la compilación de cuchillas cada vez es una pérdida de tiempo.

ArjanSchouten
fuente
Tengo una buena explicación sobre esto aquí stackoverflow.com/questions/31455829/…
Rinto George
6

Para responder a su pregunta adicional sobre cómo deshabilitar el almacenamiento en caché de vistas:

Puede hacer esto eliminando automáticamente los archivos en la carpeta para cada solicitud con el comando php artisan view:clearmencionado por DilipGurung. Aquí hay un ejemplo de clase de Middleware de 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);
    }
}

Sin embargo, puede observar que Larevel volverá a compilar los archivos en la carpeta / app / storage / views siempre que el tiempo en los archivos de vistas sea anterior al tiempo en los archivos blade PHP para el diseño. Por lo tanto, realmente no puedo pensar en un escenario en el que esto sea necesario.

Adán
fuente
2

Borrar caché en Laravel (Terminal)

Borrar caché de aplicaciones

php artisan cache:clear

Borrar ruta de caché

php artisan route:clear

Borrar caché de configuración

php artisan config:clear 

Borrar archivos de vista compilados

php artisan view:clear 

Borrar caché en el navegador La mayoría de los proveedores de alojamiento compartido no proporcionan acceso SSH a los sistemas. En ese caso, puede borrar el caché de Laravel llamando a URL en el navegador. Simplemente puede colocar el siguiente código en sus rutas / web.php.

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

Aquí está el enlace de recursos https://tecadmin.net/clear-cache-laravel-5/

Hemant Kumar
fuente
1

use el siguiente comando en la terminal

php artisan cache:clear
php artisan route:cache 
php artisan config:cache 
php artisan view:clear
Uddyan Semwal
fuente
0

Aquí hay una ayuda que escribí para resolver este problema para mis proyectos. Hace que sea súper simple y fácil poder borrar todo rápidamente y con un solo comando.

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

lzoesch
fuente
Echa un vistazo al espacio de nombres utilizado. asegúrese de que esté en la ruta correcta de la carpeta, o si la ha cambiado. asegúrese de actualizarlo en consecuencia. @samjadps
lzoesch
Actualicé el espacio de nombres de mi lado. Debería trabajar ahora para ti sin hacer nada. Solo asegúrese de que esté configurado en la carpeta consola / comandos.
lzoesch