2012-12-27 138 views
3

可能重复:
Cache Control fails如何禁用缓存100%

我目前正在使用:

header("Cache-Control: no-store, no-cache, must-revalidate"); 
header("Cache-Control: post-check=0, pre-check=0", false); 
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 

<meta http-equiv="cache-control" content="no-cache"> 
<meta http-equiv="expires" content="-1"> 
<meta http-equiv="pragma" content="no-cache"> 

但它仍然缓存

+0

哪些浏览器您使用? –

+4

您想永久禁用所有用户的缓存吗?或只是为了发展? –

+0

但浏览器确实发送“If-Modified-Since”请求,或? –

回答

0

添加时间戳到每个URI的末尾,浏览器将不会从缓存中获取它(因为这将是另一个URI上的下一个负载)

+2

如果你不使用ajax,这是一个丑陋的解决方案。 – Licson

5

您还可以添加Pragma: no-cache。并且确保Last-Modified已经足够远了:客户端和服务器之间的一些小型时钟偏移可能会诱使您的客户认为它具有新版本的文档;例如,使用Tue, 15 Nov 1994 12:45:26 GMT。并且在过去添加带有日期的Expires标题。

1

我通常在我的.htaccess

<filesMatch "\.(js|css)$"> 
FileETag None 
<ifModule mod_headers.c> 
Header unset ETag 
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate" 
Header set Pragma "no-cache" 
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT" 
</ifModule> 
</filesMatch> 

修改fileMatch添加其他的一些推广添加此...