在不使用过期的情况下使用浏览器缓存的正确方法是什么?

时间:2011-04-14 21:24:22

标签: html browser-cache

我不想使用过期,因为我不知道我的资源(css,js等)会多久发生变化。一个案例可能是我将某些东西推向生产的地方,但很快发现我在资源方面存在一些缺陷。所以我修复了错误,然后将更新的资源推送到生产环境中,但它们在到期日之前就已投入生产。如何强制浏览器使用更新的资源而不是缓存?

我不想使用指纹识别(基于版本类型的动态资源文件名),因为这些资源位于svn目录中。意思是,每次我更改代码版本时,我都必须使用svn手动修改文件名(可能有点自动化了吗?)。

使用http-equiv="last-modified"将是首选方案,但这似乎无法正常工作。

也许我只是不知道这一切是如何运作的。请赐教。非常感谢提前。

- Tri

1 个答案:

答案 0 :(得分:1)

一种选择是让所有对这些资源的引用将版本号附加到查询字符串或URL中的其他位置,例如“styles / site.css?version = 1.0”。这样,由于在下一个版本中URL会发生变化,因此您的浏览器会将其视为不同的URL,并且不会使用缓存中的文件。

如果您更改为使用CDN,则将所有资源部署到版本编号的文件夹可以实现相同的目标。