【问题标题】:When cleaning view cache in Laravel, browser still shows cached files在 Laravel 中清理视图缓存时,浏览器仍然显示缓存文件
【发布时间】:2020-02-24 19:57:35
【问题描述】:

删除 /storage/framework/view 文件后,我仍然可以看到视图的缓存版本,直到我也清理浏览器缓存。我知道可以设置“缓存控制”标头,但是有没有更优雅的方法可以自动告诉浏览器视图已更改?与我们对 js/css 文件进行版本控制的方式相同。

【问题讨论】:

  • 由于 PHP 是纯粹的服务器端并且您无法控制浏览器,我相信标头是您唯一的选择。

标签: php laravel caching browser-cache


【解决方案1】:

通过这条路线,您可以清除所有缓存:

Route::get('/clear-cache', function() {
    Artisan::call('cache:clear');
    echo '<h1>Cache facade value cleared</h1>';

    Artisan::call('route:clear');
    echo '<h1>Route cache cleared</h1>';

    Artisan::call('view:clear');
    echo '<h1>View cache cleared</h1>';

    Artisan::call('config:cache');
    return '<h1>Clear Config cleared</h1>';
});

您可以控制浏览器标头中的缓存:

return view('some_template')->header('Cache-Control', 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0, max-age=0');

【讨论】:

  • 这真的有用吗?看起来它只是清除本地存储的缓存。您仍然会遇到浏览器问题
  • 你可以控制浏览器头部的缓存
  • 好的,是的,在我发表评论后,您将该部分添加到您的答案中。 OP已经在他们关于使用缓存控制的问题中说明了
猜你喜欢
  • 1970-01-01
  • 2011-09-27
  • 2022-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-26
相关资源
最近更新 更多