【发布时间】:2016-10-17 11:15:25
【问题描述】:
我对 chrome 的缓存有很大的问题。
我正在为我的客户构建系统。所有都是基于 Angular 构建的,所以一开始总是有一个 index.html 文件。
使用新版本,我将 js 脚本标签更改为 ex。 scripts.2.1.1.js 在 index.html 文件中。
我也有:
<FilesMatch "\.(html)$">
Header set Cache-Control "max-age=1, public"
</FilesMatch>
在我的 htaccess 文件中。
但 chrome 似乎忽略了它。 每次我输入 url 地址时,我都有旧版本,但在源代码中我有新脚本的标签。当我按 F5 时,它会加载新版本,但是当我关闭浏览器的选项卡并再次输入 url 时,我再次拥有旧版本?
怎么了?如何摆脱缓存?我不想要浏览器解决方案(清除缓存)。我不能强迫我的客户这样做。我想要服务器端解决方案。有吗?
解决方案:
<FilesMatch "\.(html|js|css)$">
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
</FilesMatch>
【问题讨论】:
-
这是临时解决方案的一个小解决方法,在浏览器的新选项卡中打开该视图文件,并在进行更改后按一次 ctrl+f5,然后通过重新加载在您的应用程序中尝试。它肯定会起作用。
-
我不能强迫我的客户这样做——我正在寻找真正的解决方案。
-
正如我已经说过的,这是临时解决方案。
标签: javascript angularjs .htaccess google-chrome