我无法理解为什么我正在处理的网站中的普通JPEG图像(大约有十几个,每个
<10 KB
)不会使用他们被强制提供的缓存控制标头。我正在使用基于最新HTML5 Boilerplate .htaccess文件的规则(下面是相关部分)。奇怪的是,该网站中有大约相同数量的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
文件开始,基本上查找了每个从那里包含的conf文件,但找不到合理的解释。我也尝试了很多方法,用Pagesped和Chrome进行了数小时的审查,但仍然一筹莫展。
编辑:如下面所述,此网站的Web根目录中只有一个.htaccess
文件。 JPEG以image/jpeg
的mime类型正常显示,但缓存控制标头丢失,我无法弄清原因。