我一直对此感到困惑,希望有人能够解决这个问题。
在我的htaccess文件中,我有:
<IfModule mod_expires.c>
ExpiresActive on
ExpiresByType text/html "access plus 4 hours"
</IfModule>
但是,当我检查标题时,它似乎无法正常工作 我得到“no-store,no-cache,must-revalidate,post-check = 0,pre-check = 0”
但是如果我使用这个代码:
# 4 HOURS
<FilesMatch "\.(html|htm)$">
Header set Cache-Control "max-age=14400, must-revalidate"
</FilesMatch>
它会拿起缓存。 max-age = 14400,必须重新验证
我错过了什么吗?一个用于服务器,一个用于浏览器?我的意思是,如果它们都是相同的话,我宁愿使用第一个,因为它们都是相同的。
提前致谢!
答案 0 :(得分:0)
我不知道您是否已经有解决方案但是您确定在您的服务器上启用了mod_expire吗?在ubuntu上sudo apache2ctl -M
。
您还可以尝试注释<IfModule mod_expires.c>
和</IfModule>
并重新启动apache。如果未启用mod_expires
,它将崩溃。
启用mod_expire:
sudo a2enmod到期
mod_expires将创建Expire
标头,并且只应修改max-age=14400
标头的Cache-Control
部分。对于must-revalidate
部分,您必须使用Header
。