我读到,当你不能访问web服务器的头文件时,你可以使用以下方法关闭缓存:

<meta http-equiv="Cache-Control" content="no-store" />

但我也读到,这在某些版本的IE中不起作用。是否有一组<meta>标签将在所有浏览器中关闭缓存?


当前回答

它不能在IE5中工作,但这不是一个大问题。

然而,缓存头在元元素中是不可靠的;首先,网站和用户之间的任何web代理都将完全忽略它们。对于像Cache-Control和Pragma这样的头,你应该总是使用一个真正的HTTP头。

其他回答

根据独立安全评估者关于整个行业对控制缓存的误解的伟大案例研究,只有Cache-Control: no-store被Chrome, Firefox和IE认可。IE可以识别其他控件,但Chrome和Firefox不能。

Pragma是你最好的选择:

<meta http-equiv="Pragma" content="no-cache">

它不能在IE5中工作,但这不是一个大问题。

然而,缓存头在元元素中是不可靠的;首先,网站和用户之间的任何web代理都将完全忽略它们。对于像Cache-Control和Pragma这样的头,你应该总是使用一个真正的HTTP头。

试着用

    <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
    <META HTTP-EQUIV="Expires" CONTENT="-1">

适用于现代网络浏览器(IE9之后)

请查看页面顶部列出的副本以获取正确信息!

看这里的答案:如何控制网页缓存,在所有浏览器?


适用于IE9及之前版本

不要盲目复制粘贴这个!

The list is just examples of different techniques, it's not for direct insertion. If copied, the second would overwrite the first and the fourth would overwrite the third because of the http-equiv declarations AND fail with the W3C validator. At most, one could have one of each http-equiv declarations; pragma, cache-control and expires. These are completely outdated when using modern up to date browsers. After IE9 anyway. Chrome and Firefox specifically does not work with these as you would expect, if at all.

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

其实根本不用这些!

缓存头在元元素中是不可靠的;首先, 网站和用户之间的任何web代理都将被完全忽略 他们。您应该始终使用真正的HTTP报头,例如 缓存控制和Pragma。