【发布时间】:2016-06-24 10:09:56
【问题描述】:
我正在托管一个网站 (Apache),由于我经常更改内容,我想阻止浏览器缓存它。
这是我的一些 HTML 文件(经常更改的文件)中的 <head> 字段。
<head>
<meta http-equiv="Content-Language" content="en-gb">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="description" content="...">
<meta name="keywords" content="...">
<link rel="stylesheet" type="text/css" href="styles/sitestyle.css" media="screen" />
<title> ... </title>
<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"/>
</head>
很遗憾,这不起作用,因为 Chrome 会继续缓存该网站。但也发生了奇怪的事情,即使我清除了浏览器的缓存,它仍然显示为旧版本的网站。
我更改和上传的文件是正确的,我知道这是因为当我从隐身窗口打开网站时,更改会正常显示!
我还尝试将这段代码包含在 .htaccess 文件中,但这仍然不起作用,并导致了同样奇怪的事情,从隐身模式我可以看到更改,但不能从清除缓存的 Chrome 中看到。
<IfModule mod_headers.c>
Header set Cache-Control "no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires 0
</IfModule>
有人知道为什么会这样吗?
感谢您的建议:)
【问题讨论】:
-
您可以在 css 和 js URL 参数中添加随机字符串/数字,例如:styles/sitestyle.css?v=12345 每次刷新。但我想这不能完全回答你的问题。
标签: html .htaccess google-chrome caching web