Chrome缓存就像一个疯狂的浏览器

时间:2011-07-04 22:13:33

标签: caching google-chrome

我有一个像大多数其他人一样使用js和css文件的Web服务。我使用了将版本号附加到js和css文件的旧技巧; ?v = 123,每次我们更新生产服务时都会更改。

现在,除了Chrome之外,这适用于所有浏览器。 Chrome似乎更喜欢它的缓存版本而不是获取新版本,因此似乎忽略了附加的变量。在某些情况下,强制它刷新缓存(cmd + r / ctrl + f5)是不够的,所以我不得不进入选项并清除缓存,以便加载新内容。

Chrome是否有人遇到此问题?如果是这样,问题的解决方案是什么?

3 个答案:

答案 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的缓存问题可以通过每次用户登录和清除时清除缓存来解决,但采用这种方法会非常烦人。