为什么这个文件不尊重.htaccess的缓存控制标头?

为什么这个文件不尊重.htaccess的缓存控制标头?

为了测试性能改进,我将一个.htaccess包含以下指令的文件添加到我的/assets文件夹(我在其中存储了各种类型的图像)。

<FilesMatch "\.(jpg|jpeg|png|gif)$">
  Header set Cache-Control "public,max-age=7200"
</FilesMatch>

查看 ySlow 的输出,它奇怪地向我显示了以下内容:

Resource                        Expires
/assets/slide-1.jpg             2012/5/22
/assets/partners/part_01.gif    2012/5/22
/assets/partners/spacer.gif     2010/4/15

检查 spacer.gif 的标题,我注意到一个 gif 包含我的Cache-Control: public,max-age=7200标题标题Expires: Thu, 15 Apr 2010 20:00:00 GMT,而全部文件夹中的其他图像都遵守 max-age 标头,并且没有明确的过期标头。

我确信没有其他文件名特定的缓存控制指令在起作用。我以前在 Web 根目录中有一个缓存破坏的过期日期标头,但后来被删除了,而且似乎对任何其他文件都不再有“粘性”。

为什么会这样?

相关内容