我有一个像大多数其他人一样使用js和css文件的Web服务。我使用了将版本号附加到js和css文件的旧技巧; ?v = 123,每次我们更新生产服务时都会更改。
现在,除了Chrome之外,这适用于所有浏览器。 Chrome似乎更喜欢它的缓存版本而不是获取新版本,因此似乎忽略了附加的变量。在某些情况下,强制它刷新缓存(cmd + r / ctrl + f5)是不够的,所以我不得不进入选项并清除缓存,以便加载新内容。
Chrome是否有人遇到此问题?如果是这样,问题的解决方案是什么?
答案 0 :(得分:12)
Chrome肯定会将具有不同查询字符串的请求视为不同的请求; style.css?v=123
的缓存结果永远不应用于style.css?v=124
。如果您看到不同的行为,请在http://new.crbug.com/提交错误并在此处发布错误ID。
那就是说,我首先要检查页面的缓存时间是否超出预期。如果未下载新版本的页面本身,那么它仍然会请求?v=123
,因为HTML不会更改。如果您使用该页面发送长期存储的缓存标头,那么Chrome可能会比您预期的更加积极地缓存它。如果这是您所看到的行为,请在http://crbug.com/8742上标明更新。
答案 1 :(得分:3)
我也有同样的经历
您可以在Chrome + Mozilla中使用Ctrl + Shift + R进行缓存免费浏览。
答案 2 :(得分:1)
我也有过这样的经历。
我运行会员网站,如果他们没有登录或正在尝试查看其会员级别不允许的内容,则会显示“您必须以黄金会员身份登录以查看此内容”等内容。但即使用户已登录,由于Google Chrome的积极缓存,用户仍会看到“您需要登录”。然而,在Firefox中,它可以正常运行,因为我测试登录和退出所有5个级别的成员资格 - 每个级别都显示正确的内容。
虽然Chrome的缓存问题可以通过每次用户登录和清除时清除缓存来解决,但采用这种方法会非常烦人。