我对 javascript 文件添加了相当大的更改。但是,为了注册新的更改,我需要刷新浏览器。我想这对于使用该网站的所有其他人来说也是如此。
有没有办法使客户端的浏览器缓存失效并强制它下载新的js文件?
我对 javascript 文件添加了相当大的更改。但是,为了注册新的更改,我需要刷新浏览器。我想这对于使用该网站的所有其他人来说也是如此。
有没有办法使客户端的浏览器缓存失效并强制它下载新的js文件?
您可以重命名文件,或者在加载文件时添加一个随机参数:
<script src="/javascripts/application.js?version=4" type="text/javascript"></script>
您可以在文件名中添加一个参数,例如
<script src="script.js?rnd=2131231"></script>
这里有一个非常全面的讨论,有几种方法可以做到这一点。
如果您的项目不够大或您不使用 apache,推荐的解决方案 (mod_pagespeed) 可能不是您的最佳解决方案,在这种情况下,我会推荐如下格式:
<script src="/{sha_1_here}/script.js"></script>
而不是 GET 参数,因为显然某些浏览器不会缓存带有参数的脚本。
这应该适用于任何地方,您只需要重写 URL 服务器端。
出于开发目的,我禁用了浏览器端的缓存,以便它始终获取。
但是对于生产,要重置以便所有客户端用户的浏览器都应该下载新版本,您可以查看 apache 的设置以使缓存文件过期。