Chrome缓存过长

时间:2012-03-03 23:16:20

标签: caching google-chrome

在我的网站www.johnshammas.com上,它可以在所有浏览器中完美运行。除了......在Chrome上浏览过以前版本的任何人都会使用该版本,直到他们清空缓存为止。什么会导致网站返回“未修改”的标题,而实际上它已被大量修改?

3 个答案:

答案 0 :(得分:2)

如果返回304 Not Modified响应,那是因为之前服务器发送的回复带有ETagLast-Modified标题。

稍后,浏览器将此值作为ETagIf-Modified-Since标头发送。服务器识别ETag或日期,以便自浏览器上次请求资源以来资源没有改变。

所以它返回了304

如果您不熟悉这些或其他缓存标头,我建议您对它们进行一些研究。关于这些是什么以及如何使用它们有很多很棒的教程。

答案 1 :(得分:0)

一些可能的解决方案就是这样......

  

否1(永久)

  

No 2(半永久性)

  • 通过Ctrl + Shift + N切换到隐身模式。但请注意这一点 也会结束你的会议。
  

No 3(一次性)

  • Ctrl + Shift + Del>确认
  

No 4(一次性)

  • F12 for Dev Tools>网络标签>右键单击内容区域> 清除浏览器缓存>确认。

答案 2 :(得分:0)

问题是Chrome需要在Cache-Control`标头中有must-revalidate才能重新检查文件以查看是否需要重新获取文件。

推荐以下响应标题:

Cache-Control: must-validate

这告诉Chrome检查服务器,看看是否有更新的文件。如果有更新的文件,它将在响应中收到。如果没有,它将收到304响应,并确保缓存中的那个是最新的。

如果您没有设置此标头,那么在没有任何其他设置使文件无效的情况下,Chrome将从不检查服务器以查看是否有更新的版本。

这是一个blog post,可以进一步讨论这个问题。