ChatGPT解决这个技术问题 Extra ChatGPT

Laravel 5 清除视图缓存

我注意到 Laravel 缓存视图存储在 ~/storage/framework/views. 中,随着时间的推移,它们会占用我的空间。如何删除它们?有什么命令可以吗?我试过 php artisan cache:clear, 但它没有清除视图缓存。有了这个,我必须手动删除所述文件夹中的文件。

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

“加班,他们会吃掉我的空间。”不太可能。我维护的一个大型 Laravel 应用程序有大约 300KB 的缓存视图,用于大约 500 条路由。由于任何现代服务器上的缓存视图,您永远不会用完。
但问题是我的托管服务提供商不受磁盘空间使用的限制。相反,它受到您拥有的文件数量的限制。所以这对我来说是个问题。
这很奇怪,与 vendor 中的数千个文件相比,您在 storage/framework/views 中的几百个文件根本算不上什么。找一个没有这种荒谬疯狂限制的主机。限制文件数量?怎么回事?!
你能推荐一个很棒的主机吗?最好是共享主机。我不确定是否允许我分享我当前托管服务提供商的名称。不过,这是一家大公司。
如果你不是太技术性的话,我会选择像 Heroku 这样的地方,或者如果你是亚马逊网络服务的话。如果您当前的主机确实限制了文件数量而不是总使用空间,那么它们就是疯了。

m
maxxon15

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


很高兴知道。我注意到一件事,随着时间的推移,views 文件夹下的缓存被删除了。代码中有什么东西可以在 xx 天内删除它们吗?
我相信它的存在时间比这长一点:)
T
Tim

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

php artisan

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

php artisan view:clear

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

php artisan help view:clear

U
Uddyan Semwal

请尝试以下命令:

sudo php artisan cache:clear

sudo php artisan view:clear

sudo php artisan config:cache

确保您artisan config:cache是否通过 config() 而不是 env() 访问 所有 .env 变量,否则它们将为空。
@FlashJordan 我希望在运行 config:cache 之前阅读您的评论。哈哈。对于像我一样盲目运行 config:cache 的其他人,只需从 bootstrap/cache 中删除 config.php。
你只是救了我的眼泪和悲伤。我一直想知道为什么我的更改没有奏效。
为什么要使用 sudo 寿?
M
Mosam Prajapati

在 Ubuntu 系统中尝试运行以下命令:

sudo php artisan cache:clear

sudo php artisan view:clear

sudo php artisan config:cache

A
Adam

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

您可以通过使用 DilipGurung 提到的命令 php artisan view:clear 自动删除每个请求的文件夹中的文件来执行此操作。这是来自 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 文件夹中的文件。因此,我真的想不出有必要这样做的场景。


A
ArjanSchouten

现在没有 view:clear 命令。对于 laravel 4,这可能会对您有所帮助:https://gist.github.com/cjonstrup/8228165

可以通过跳过刀片来禁用缓存。视图缓存已经完成,因为刀片每次编译都是浪费时间。


我在这里得到了很好的解释stackoverflow.com/questions/31455829/…
U
Uddyan Semwal

在终端中使用下面的命令

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

k
kray

这是我为我的项目解决此问题而编写的助手。它使得能够通过一个命令快速清除所有内容变得超级简单和容易。

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


看看使用的命名空间。确保它在正确的文件夹路径中,或者如果你改变了它。确保您相应地更新它。 @samjadps
我更新了我的命名空间。现在应该为您工作而无需做任何事情。只需确保将其设置在控制台/命令文件夹中即可。