Cache do Clear Views do Laravel 5


168

Percebo que as visualizações de cache do Laravel são armazenadas em ~/storage/framework/views.Com o tempo, elas consomem meu espaço. Como eu os apago? Existe algum comando que poderia? Eu tentei, php artisan cache:clear,mas ele não está limpando o cache de visualizações. Com isso, eu tenho que excluir manualmente os arquivos na referida pasta.

Além disso, como desabilito o cache de visualizações?


3
"Horas extras, eles comem meu espaço." Improvável. Um grande aplicativo Laravel que mantenho tem cerca de 300 KB de visualizações em cache para cerca de 500 rotas. Você nunca vai acabar devido a visualizações em cache em qualquer servidor moderno.
ceejayoz

3
Mas o problema é que meu provedor de hospedagem não está limitando o uso do espaço em disco. Em vez disso, é limitado pelo número de arquivos que você possui. Portanto, é um problema para mim.
basagabi

5
Isso é bizarro, e suas centenas de arquivos storage/framework/viewsnão são nada próximos aos milhares de arquivos vendor. Obtenha um host que não tenha limitações insanas absurdas como essa. Limitando pelo número de arquivos? WTF ?!
precisa

Você poderia recomendar uma ótima hospedagem para isso? Preferencialmente hospedagem compartilhada. Não tenho certeza se tenho permissão para compartilhar o nome do meu provedor de hospedagem atual. É uma grande companhia, no entanto.
basagabi

1
Eu iria a algum lugar como o Heroku, se você não for muito técnico, ou o Amazon Web Services, se for. Se seu host atual limita genuinamente o número de arquivos e não o espaço total usado, eles são loucos.
precisa

Respostas:


278

Agora existe um php artisan view:clearcomando para esta tarefa desde o Laravel 5.1


É bom saber isso. Uma coisa que noto que, com o tempo, o cache na pasta visualizações é excluído. Existe algo no código que os exclua em xx dias?
21715 basagabi

Eu acredito que tem sido em torno de um pouco mais do que :)
Oddman

29

Para obter todo o comando artisan, digite ...

php artisan

Se você deseja limpar o cache da visualização, use:

php artisan view:clear

Se você não souber usar o comando específico do artesão, basta adicionar "ajuda" (veja abaixo)

php artisan help view:clear

11

tente este comando abaixo:

sudo php artisan cache:clear

sudo php artisan view:clear

sudo php artisan config:cache

2
Certifique-se de artisan config:cacheque todas as suas .envvariáveis ​​sejam acessadas via config(), não env()ou elas serão nulas.
precisa saber é o seguinte

1
@FlashJordan Eu gostaria de ler seu comentário antes de executar o config: cache. ri muito. Para qualquer pessoa que execute o config: cache tão cegamente quanto eu, exclua o config.php do bootstrap / cache.
Tarek Adam


6

Para responder sua pergunta adicional sobre como desativar o cache de visualizações:

Você pode fazer isso php artisan view:clearexcluindo automaticamente os arquivos na pasta para cada solicitação com o comando mencionado por DilipGurung. Aqui está um exemplo de classe Middleware em 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);
    }
}

No entanto, você pode observar que o Larevel recompilará os arquivos na pasta / app / storage / views sempre que o tempo nos arquivos de visualizações for anterior ao tempo nos arquivos blade do PHP para o layout. Assim, não consigo realmente pensar em um cenário em que isso seria necessário.


2

Limpar cache no Laravel (Terminal)

Limpar cache de aplicativos

php artisan cache:clear

Limpar cache de rota

php artisan route:clear

Limpar cache de configuração

php artisan config:clear 

Limpar arquivos de exibição compilados

php artisan view:clear 

Limpar cache no navegador A maioria dos provedores de hospedagem compartilhada não fornece acesso SSH aos sistemas. Nesse caso, você pode limpar o cache do Laravel chamando URL no navegador. Você pode simplesmente colocar o código abaixo em suas rotas / web.php.

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

Aqui está o link do recurso https://tecadmin.net/clear-cache-laravel-5/


1

use o comando Abaixo no terminal

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

0

Aqui está um ajudante que escrevi para resolver esse problema nos meus projetos. Torna super simples e fácil poder limpar tudo rapidamente e com um único comando.

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


Dê uma olhada no espaço para nome usado. verifique se está no caminho correto da pasta ou se você o mudou. certifique-se de atualizá-lo adequadamente. @samjadps
lzoesch

Atualizei o espaço para nome do meu lado. Deve funcionar agora para você sem fazer nada. Apenas verifique se está definido na pasta console / comandos.
lzoesch 03/02
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.