随着开发的进行,我目前正在测试一个网站,几乎每次更新客户端脚本时,我都需要清除浏览器缓存以在客户端上使用新功能,因为浏览器会下载新的.js 文件的编译。
如果在生产中推出新版本的脚本怎么办?如何让客户端浏览器在上传到服务器后立即获取它?
我正在使用 ASP.NET MVC 4 站点。
随着开发的进行,我目前正在测试一个网站,几乎每次更新客户端脚本时,我都需要清除浏览器缓存以在客户端上使用新功能,因为浏览器会下载新的.js 文件的编译。
如果在生产中推出新版本的脚本怎么办?如何让客户端浏览器在上传到服务器后立即获取它?
我正在使用 ASP.NET MVC 4 站点。
最简单的方法是将版本号添加到脚本文件(比如 script_1.6.js 等)
重命名文件以创建版本控制:
所以
<script src="myscript.js"></script>
变成
<script src="myscript-9-5-2012.js"></script>
同样根据https://developers.google.com/speed/docs/best-practices/caching#LeverageProxyCaching
不建议使用查询字符串进行版本控制(即。myscript.js?v=1.1.0
),因为特别是
大多数代理,尤其是 3.0 版的 Squid,不缓存带有“?”的资源。在他们的网址中...
阻止脚本缓存的最佳方法是在每行的末尾添加一个随机查询字符串值。例如
<script src="/path-to-your-script/script.js?v=0b1"></script>
这在开发中非常有用,因为您的脚本永远不会被缓存,尽管在生产中您确实希望浏览器缓存脚本以加快速度。
因此,对于生产,您可能希望引入一些版本控制,例如 jquery,jquery-1.8.0.js