Php 在Laravel中清理视图缓存时,浏览器仍显示缓存的文件

Php 在Laravel中清理视图缓存时,浏览器仍显示缓存的文件,php,laravel,caching,browser-cache,Php,Laravel,Caching,Browser Cache,删除/storage/framework/view文件后,在清除浏览器缓存之前,我仍然可以看到缓存版本的视图。我知道可以设置“缓存控制”标题,但有没有更优雅的方式自动告诉浏览器视图已更改?我们对js/css文件进行版本控制的方法与此相同。通过此方法,您可以清除所有缓存: Route::get('/clear-cache', function() { Artisan::call('cache:clear'); echo '<h1>Cache facade value c

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

通过此方法,您可以清除所有缓存:

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>';
});

由于PHP纯粹是服务器端,您无法控制浏览器,因此我相信页眉是您唯一的选择。这真的有效吗?看起来它只是在清除本地存储的缓存。你仍然会遇到Browser的问题你可以控制browserOk头中的缓存是的,在我发表评论后,你将这部分添加到了你的答案中。OP已经在他们的问题中说明了缓存控制的使用
return view('some_template')->header('Cache-Control', 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0, max-age=0');