编辑:
惊喜,惊喜 - 以前的解决方案在 IE 中不起作用。
又花了几个小时后,我最终将以下内容添加到blade
模板标题中:
<meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="cache-control" content="no-store" />
<meta http-equiv="cache-control" content="must-revalidate" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
<meta http-equiv="pragma" content="no-cache" />
这似乎适用于所有浏览器。
此外,我必须防止缓存所有 AJAX 调用。这个问题提供了一些非常有用的答案。
以下在 IE 中不起作用:
我找到了一个解决方案——在我看来不是一个漂亮的解决方案。
使用(全局后)过滤器如下...
App::after(function($request, $response)
{
// prevent browser caching
$response->headers->set('Cache-Control','nocache, no-store, max-age=0, must-revalidate');
$response->headers->set('Pragma','no-cache');
$response->headers->set('Expires','Fri, 01 Jan 1990 00:00:00 GMT');
});
似乎强制浏览器从服务器重新加载页面。
这个问题的答案提供了一些非常有用的信息。
但是,我仍然想知道为什么其他开发人员没有同样的问题,或者如果他们有,他们是如何解决的。