我无法弄清楚为什么我正在处理的网站中的普通旧JPEG图像(大约十几个,每个< 10 KB
)不会采用缓存控制标头,而是强制进给。我使用的.htaccess
规则基于最新HTML5 Boilerplate .htaccess file(下方相关部分)。有什么奇怪的是网站中的PNG数量相同,除了其中两个,缓存控制头文件完美无缺。
<IfModule mod_expires.c>
ExpiresActive on
# Perhaps better to whitelist expires rules? Perhaps.
ExpiresDefault "access plus 1 month"
...
# media: images, video, audio
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
...
<IfModule mod_headers.c>
Header append Cache-Control "public"
</IfModule>
</IfModule>
(省略号表示删除了多余的ExpiresByType
规则部分)
我已经从我的/etc/apache2/apache2.conf
文件直到几乎包含在那里的每个配置文件,并且找不到合理的解释。我已经摆弄,Pagesped和Chrome审计了几个小时的死亡,我仍然无能为力。
修改:如下所述,此网站的网络根目录中只有一个.htaccess
文件。 JPEG正在通过mime类型image/jpeg
正常,但缓存控制标头丢失了,我无法弄清楚原因。
答案 0 :(得分:5)
我已将no-transform
添加到mod_headers
部分,果然,这一切都按预期工作。现在我可以让墙壁从我的额头上休息一下。
<IfModule mod_headers.c>
Header append Cache-Control "public, no-transform"
</IfModule>