2

我在 iframe 中有一个带有另一个 html 页面的页面。在这个 iframe 中,我放了这个 header 标签

<META http-equiv="Pragma" content="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
<meta http-equiv="cache-control" content="no-cache" />

但是 chrome 仍然缓存它,当 iframe 内容发生变化时,点击 f5 按钮但 chrome 仍然加载缓存版本,而不是新版本。

请告诉我如何 pevent google chrome 缓存这个 iframe。

4

4 回答 4

3

在来自服务器的 HTTP 响应中设置正确的过期标头。它们会覆盖您在meta标签中放置的任何内容。

于 2012-06-16T19:28:06.533 回答
1

这适用于 Chrome:

<meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="cache-control" content="no-store" />
<meta http-equiv="expires" content="-1" />
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
<meta http-equiv="pragma" content="no-cache" />

我在 Chromium 错误中发现了这一点。 https://bugs.chromium.org/p/chromium/issues/detail?id=28035

于 2017-05-18T18:12:10.720 回答
0

元标记可以忽略。取而代之的是,您的服务器应该为缓存控制设置适当的 HTTP 标头。您还应该设置Expired标头。

https://en.wikipedia.org/wiki/List_of_HTTP_header_fields#Avoiding_caching

于 2012-06-16T19:28:39.020 回答
0

我发现 Chrome 可能会忽略文件中的那些元设置,转而支持 http 响应标头中的缓存设置。我可以通过在我的 web.config 中添加它来解决 IIS 中的这个问题

<system.webServer>
  <staticContent>
    <clientCache cacheControlMode="NoControl" />

文件仍会被缓存,但现在我可以根据需要明确排除文件。

于 2019-08-29T19:34:22.800 回答