Caching Chrome缓存时间过长

Caching Chrome缓存时间过长,caching,google-chrome,Caching,Google Chrome,在我的网站www.johnshammas.com上,它可以在所有浏览器中完美运行。除了…任何在Chrome上查看过以前版本的人都会一直使用该版本,直到他们清空缓存为止。当网站实际被大量修改时,什么会导致网站返回“未修改”标题?一些可能的解决方案如下所示 1号(永久性) F12用于开发工具>齿轮符号用于右下角的设置>网络> 2号(半永久性) 通过Ctrl+Shift+N切换到隐姓埋名模式。但要注意这一点 也将结束您的会话 3号(一次) Ctrl+Shift+Del>确认 4号(一次)

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

一些可能的解决方案如下所示

1号(永久性)

  • F12用于开发工具>齿轮符号用于右下角的设置>网络>
2号(半永久性)

  • 通过Ctrl+Shift+N切换到隐姓埋名模式。但要注意这一点 也将结束您的会话
3号(一次)

  • Ctrl+Shift+Del>确认
4号(一次)

  • F12开发工具>网络选项卡>右键单击内容区域> 清除浏览器缓存>确认

如果返回了
304未修改
响应,这是因为之前服务器发送了一个带有
ETag
上次修改
头的响应

稍后,浏览器将此值作为
ETag
发送,或者如果自
标题修改后发送
。服务器识别ETag或日期,因此自浏览器上次请求资源后,该资源未发生更改

因此它返回了一个
304


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

问题是Chrome需要在缓存控件的“头”中有
必须重新验证
,以便重新检查文件,查看是否需要重新获取它们

建议使用以下响应标题:

Cache-Control: must-validate
这会告诉Chrome检查服务器,看看是否有更新的文件。如果有更新的文件,它将在响应中接收它。如果没有,它将收到304响应,并保证缓存中的响应是最新的

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


下面是一个进一步讨论此问题的示例。

您应该查看随页面一起发送的标题,并检查它们是否不是问题的原因。如果您不理解标题的意思,请将问题添加到标题中。