11

我有一个始终需要保持最新状态的网页。我不希望浏览器缓存它。为此,此元标记嵌入到页面中:

<meta name="Expires" content="Tue, 01 Jun 1999 19:58:02 GMT"> 

但是,一些浏览器似乎忽略了它。Chrome 在这方面特别糟糕,尽管其他浏览器倾向于做同样的事情。

当我从书签栏中选择页面时,大多数情况下,它甚至不会访问服务器,只是从缓存中加载它。如果我然后按 F5,它会转到服务器并获取一个新副本。

我错过了一些简单的东西吗?我认为 expires 元标记是它的完成方式。

这发生在 Windows 2000 上的 IIS 5.0 上。


底线:看起来 HTML 代码中的元标记几乎什么都不做。但是,在 HTTP 中设置过期标签可以很好地解决问题。

4

6 回答 6

9

使用您的服务器发送过期标头。具体来说,如果您使用的是 apache,请查看以下内容:

http://httpd.apache.org/docs/2.0/mod/mod_expires.html

于 2009-09-03T00:42:26.663 回答
4

这应该可以帮助您:

<meta http-equiv="cache-control" content="no-cache" />

也可以通过IIS配置静态内容缓存机制;您可以在此处了解如何操作:http: //support.microsoft.com/kb/247404

于 2009-09-03T00:42:46.693 回答
4
<meta http-equiv="Cache-Control" content="private, no-store" />

正如你所说的那样,你需要的是所有的htps: //youtu.be/tnlcoyligfk?t= 654 by Andrew Betts,选举了W3C标签成员。

使用它,您将不需要 pragma 或 expires。事实上,以上将覆盖 Expires 命令。

于 2019-01-13T12:22:44.447 回答
3

您希望将 Expires 标头设置为过去的日期(例如您的 Meta 标签)。

Expires 是最受推崇的缓存标头,但您也可以使用 Last-Modified 或 Etags 之类的东西来获得更具体的控制。

元标记是设置缓存协议的一种有些过时的方法,并且大多数元缓存控制属性都已被弃用(例如 NO-CACHE)。许多用户代理忽略了它们。

于 2009-09-03T00:56:02.360 回答
2

我曾经读过一篇很棒的文章,关于浏览器缓存和一般缓存:

http://www.mnot.net/cache_docs/

它详细解释了什么有效,什么无效,什么是最好的。

总之有很多方式(html标签,HTTP头)和缓存类型(浏览器代理,网关)

于 2009-09-03T01:19:37.727 回答
1

Cache-Control: no-cache在响应头中发送给客户端。
请指定您使用什么平台来做出更好的响应。

于 2009-09-03T01:23:10.797 回答