1

我已经添加了以下几行以防止缓存,内容显示在 iframe 中

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta http-Equiv="Cache-Control" Content="no-cache">
    <meta http-Equiv="Pragma" Content="no-cache">
    <meta http-Equiv="Expires" Content="0">

但它没有效果,有什么想法吗?

4

2 回答 2

2

我总是尝试使用 HTTP 标头来控制缓存,因为它们更有可能被所有缓存观察到。话虽如此,如果您需要在 html 中设置它,我会建议以下内容:

<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />
于 2013-01-18T07:33:52.253 回答
2

我不能 100% 确定这是否适用于所有情况,但正如您所经历的那样,我的挫败感导致我一次将所有可能的元标记都抛到了问题后面。我正在使用 PHP,所以我让它使用当前时间前 24 小时的日期填充元标记的内容。

<!-- Prevent Caching of this Page -->
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="<?php echo gmdate('D, d M Y H:i:s', time()-86400) . ' GMT' ?>" />
<meta http-equiv="last-modified" content="<?php echo gmdate('D, d M Y H:i:s', time()-86400) . ' GMT' ?>" />

通过谷歌搜索,我发现将“Expires”http-equiv 设置为“0”并不适用于所有情况,最好有一个过去的有效日期。

我真诚地希望这是一个好的建议,如果不是,请有人纠正我,以便我可以在这里更新我自己的做法。

于 2018-05-11T00:14:22.647 回答