我有一个始终需要保持最新状态的网页。我不希望浏览器缓存它。为此,此元标记嵌入了页面:
<meta name="Expires" content="Tue, 01 Jun 1999 19:58:02 GMT">
但是,有些浏览器似乎忽略了它。 Chrome在这方面特别糟糕,尽管其他浏览器也倾向于做同样的事情。
当我从书签栏中选择页面时,大部分时间它甚至都没有点击服务器,只是从缓存中加载它。如果我然后按F5,它会转到服务器并获取新副本。
我错过了一些简单的东西吗?我认为过期元标记就是这样做的。
这发生在Windows 2000上的IIS 5.0上。
底线:看起来像HTML代码中的元标记几乎什么都不做。但是,在HTTP中设置expires标签很有效。
答案 0 :(得分:8)
使用您的服务器发送您的过期标头。具体来说,如果您使用的是apache,请查看:
答案 1 :(得分:4)
这可以帮到你:
<meta http-equiv="cache-control" content="no-cache" />
您还可以通过IIS配置静态内容缓存机制;您可以在此处了解如何执行此操作:http://support.microsoft.com/kb/247404。
答案 2 :(得分:3)
您希望将Expires标头设置为过去的日期(例如Meta标签)。
Expires是最受尊重的缓存标头,但您也可以使用Last-Modified或Etags之类的东西来获得更具体的控制。
Meta标签是设置缓存协议的一种有点过时的方法,并且大多数元缓存控制属性都被公平地弃用(例如NO-CACHE)。很多用户代理都会忽略它们。
答案 3 :(得分:2)
有一篇很棒的文章我曾经读过一般的浏览器缓存和缓存:
http://www.mnot.net/cache_docs/
它详细解释了哪些有效,哪些无效,最好做什么。
总之,有很多方法(html标签,HTTP标头)和缓存类型(浏览器代理,网关)
答案 4 :(得分:2)
在响应标头内向客户端发送Cache-Control: no-cache
请指定您使用哪个平台来做出更好的回复。
答案 5 :(得分:1)
<meta http-equiv="Cache-Control" content="private, no-store" />
确实是您所需要的,正如W3C TAG成员安德鲁·贝茨(Andrew Betts)在这里https://youtu.be/TNlcoYLIGFk?t=654所述。
使用此选项,您将不需要编译或过期。实际上,以上内容将覆盖Expires命令。