测试此网址 http://getapple.net/phpbb/banners.js
返回304,文件未修改。
我曾经启用过插件" mod_expires"并设置js缓存1个月。
但现在我想重置规则。我试着评论这一行
ExpiresByType application/javascript "access 1 month"
然后重启apache。
但该文件仍然从缓存中加载。 (Chrome浏览器中的响应标题返回304)
但是在我运行之后
curl -I http://getapple.net/phpbb/banners.js
在命令行中,结果为
HTTP/1.1 200 OK
Date: Sun, 10 May 2015 14:51:59 GMT
Server: Apache/2.4.7 (Ubuntu)
Last-Modified: Sun, 10 May 2015 14:34:14 GMT
ETag: "9dd2-515bb27cf250a"
Accept-Ranges: bytes
Content-Length: 40402
Vary: Accept-Encoding
Content-Type: application/javascript
我不知道自己做错了什么。请建议如何通过网址获取我的文件的更新版本。
非常感谢。
答案 0 :(得分:2)
当您向浏览器发送Expires标头时,它将缓存您的响应,并仅在过期日期过后检查更新的版本。由于浏览器无法检查更新的版本,因此更改服务器设置不会影响浏览器的缓存数据。如果您在脚本中犯了一些错误或者有更新,则可以使用查询字符串强制浏览器询问您的脚本。
假设这是您当前的脚本:
<script src="http://getapple.net/phpbb/banners.js" ></script>
您需要做什么:
<script src="http://getapple.net/phpbb/banners.js?v=20150510" ></script>
由于网址不一样,浏览器会询问带查询字符串的网址,并会应用您的新设置!