可能重复:
Css 文件缓存
我想确保用户始终获得我的代码的最新版本。
但是设置它以便浏览器不缓存文件是不好的,因为它需要在每个页面视图中重新加载。我想确保它不使用以前版本的缓存副本。例如。使用 1.3 版站点的 1.2 版 JS 的缓存副本。
我见过的一种方法是在每个版本上更改文件名并链接到每个版本上的不同文件名(例如'myscript1.3.js') 这似乎需要付出很多努力并且有点hacky。
有一个更好的方法吗?
可能重复:
Css 文件缓存
我想确保用户始终获得我的代码的最新版本。
但是设置它以便浏览器不缓存文件是不好的,因为它需要在每个页面视图中重新加载。我想确保它不使用以前版本的缓存副本。例如。使用 1.3 版站点的 1.2 版 JS 的缓存副本。
我见过的一种方法是在每个版本上更改文件名并链接到每个版本上的不同文件名(例如'myscript1.3.js') 这似乎需要付出很多努力并且有点hacky。
有一个更好的方法吗?
这是一个非常好的解决方案,我什至会说这是最好的。
您还可以使用查询参数来指示新版本(?v=1、?v=2、...)。但这可能会抛弃一些公共代理(它们可能不会缓存文件)。有关详细信息,请参见此处:https ://developers.google.com/speed/docs/best-practices/caching#LeverageProxyCaching
当然,这需要您付出一些努力。但是你可以在你的部署过程中自动化所有这些(如何做到这一点完全取决于你的设置,所以我不能在不了解更多关于你的项目的情况下给你一个解决方案)。
方法 1:您更改服务器标头。对于不同的服务器,这些可能会有所不同,但对于 apache 服务器,您可以查看 mod_cache 模块http://httpd.apache.org/docs/2.4/mod/mod_cache.html
方法 2:你使用一些元标记。你会在这里找到一个相关的问题Using <meta> tags to turn off caching in all browsers?