2016-11-23 74 views
0

我有一个Joomla站点,在Apache服务器上运行,并且在Firefox和Chrome浏览器缓存页面时没有提供最新版本。浏览器缓存覆盖过期标题

我加入这个代码,以我的htaccess文件:

<IfModule mod_expires.c> 
# Enable expirations 
ExpiresActive On 
# Default directive 
ExpiresDefault "access plus 60 seconds" 
# My favicon 
ExpiresByType image/x-icon "access plus 1 month" 
# Images 
ExpiresByType image/gif "access plus 1 week" 
ExpiresByType image/png "access plus 1 week" 
ExpiresByType image/jpg "access plus 1 week" 
ExpiresByType image/jpeg "access plus 1 week" 
# CSS 
ExpiresByType text/css "access plus 1 week" 
# Javascript 
ExpiresByType application/javascript "access plus 1 week" 
</IfModule> 

如果我清除Chrome和Firefox浏览器的缓存,然后加载网站,我得到正确的响应头的图像,CSS和JavaScript为每上面的代码。

对于主文档我得到这些响应第一负载报头:

Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 
Expires: Wed, 17 Aug 2005 00:00:00 GMT 
Pragma: no-cache 

但是,当我重新载入页面,甚至在新标签中的Expires头消失打开它,浏览器加载了缓存的网页(状态码304未修改)。

我不知道这里发生了什么。我在Mac上使用Safari并没有任何这些问题,所以我很困惑为什么Chrome和Firefox不按照我期望的方式行事。

也许可以解释为什么该页面与htaccess中的默认值相比,有一组不同的响应标头。这是mod_expires的工作方式吗?

我希望有足够的信息来回答我的查询,在此先感谢。

回答