Laravel 5清除视图缓存


167

我注意到Laravel缓存视图存储在~/storage/framework/views.随着时间的流逝,它们会占用我的空间。如何删除它们?有没有可能的命令?我试过了,php artisan cache:clear,但是没有清除视图缓存。这样,我必须手动删除该文件夹中的文件。

另外,如何禁用视图缓存?


3
“加班,他们就吃光了我的空间。” 不太可能。我维护的一个大型Laravel应用程序具有大约300KB的缓存视图,可用于大约500条路由。由于任何现代服务器上的缓存视图,您永远都不会用完。
ceejayoz

3
但是问题是我的托管服务提供商不受磁盘空间使用的限制。相反,它受您拥有的文件数量的限制。所以这对我来说是个问题。
basagabi 2015年

5
太奇怪了,其中的数百个文件storage/framework/views与中的成千上万个文件仅相差无几vendor。获得一个没有荒谬疯狂限制的主机。是否受文件数量限制?WTF ?!
ceejayoz

您能为此推荐一个很棒的主机吗?最好是共享托管。我不确定是否可以共享当前托管服务提供商的名称。不过,这是一个很大的麻烦。
basagabi 2015年

1
如果您不太技术,我会选择Heroku之类的软件;如果是,我会选择Amazon Web Services。如果您当前的主机确实限制了文件数量而不是总已用空间,那么它们就是疯了。
ceejayoz

Answers:


278

php artisan view:clear从Laravel 5.1开始,现在有一个用于此任务的命令


很高兴知道。我注意到的一件事是,随着时间的流逝,views文件夹下的缓存将被删除。代码中是否有某些内容会在xx天之内将其删除?
basagabi,2015年

我相信它比那更长:)
Oddman

29

要获取所有工匠命令,请输入...

php artisan

如果要清除视图缓存,请使用:

php artisan view:clear

如果您不知道如何使用特定的artisan命令,只需添加“帮助”(请参见下文)

php artisan help view:clear

11

请尝试以下命令:

sudo php artisan cache:clear

sudo php artisan view:clear

sudo php artisan config:cache

2
请确保您是否通过而不是访问artisan config:cache所有.env变量config()env()否则它们将为null。
FlashJordan

1
@FlashJordan我希望在运行config:cache之前先阅读您的评论。大声笑。对于像我一样盲目运行config:cache的其他人,只需从bootstrap / cache中删除config.php。
Tarek Adam


6

要回答您的其他问题,如何禁用视图缓存:

为此,您可以使用php artisan view:clearDilipGurung提到的命令自动删除每个请求的文件夹中的文件。这是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);
    }
}

但是,您可能会注意到,只要视图文件上的时间早于布局的PHP刀片文件上的时间,Larevel就会重新编译/ app / storage / views文件夹中的文件。因此,我真的无法想到需要这样做的情况。


2

清除Laravel(终端)中的缓存

清除应用程序缓存

php artisan cache:clear

清除路线缓存

php artisan route:clear

清除配置缓存

php artisan config:clear 

清除编译的视图文件

php artisan view:clear 

在浏览器中清除缓存大多数共享托管提供程序都不提供对系统的SSH访问。在这种情况下,您可以通过在浏览器中调用URL来清除Laravel缓存。您可以简单地将以下代码放在您的route / web.php中。

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

这是资源链接https://tecadmin.net/clear-cache-laravel-5/


1

在终端中使用以下命令

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

0

这是我为解决我的项目而写的一个帮助程序。它使使用单一命令快速清除所有内容变得超级简单。

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


看一下使用的名称空间。确保其在正确的文件夹路径中,或者是否已更改。确保相应地更新它。@samjadps
lzoesch

我最后更新了名称空间。现在应该为您工作,无需执行任何操作。只需确保在console / commands文件夹中对其进行了设置。
lzoesch
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.