缓存破坏?

缓存破坏?

有没有办法强制浏览器从 apache 重新加载所有 javascript 文件(*.js)?

我有一个测试版网站,每次我对 javascript 文件进行更改时,我都必须告诉我的用户清除缓存。我可以强制 apache 不返回 .js 文件的 300/301/302 状态吗?如果可以,这能解决任何问题吗?

答案1

尝试使用版本控制文件,就像 Rails 和其他一些框架那样。因此,不要

/js/myscript.js

使用类似 URL

/assets/js/myscript-[文件的 MD5].js

创建一个简单的 shell 脚本,将文件从 /js/ 复制到 /assets/js/,然后将数据插入到您的应用程序中。这样,即使源文件中只有一个字符被更改,URL 也会不同,因此所有缓存都将无效。如果浏览器甚至没有请求文件,您就无法强制浏览器取消缓存文件。如果您正确设置了缓存,浏览器将不会检查If-modified-since版本

相关内容