mod_expires没有在JPEG图像上设置缓存控制头

时间:2011-03-01 04:24:46

标签: apache .htaccess apache2 http-headers mod-expires

我无法弄清楚为什么我正在处理的网站中的普通旧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正常,但缓存控制标头丢失了,我无法弄清楚原因。

1 个答案:

答案 0 :(得分:5)

我已将no-transform添加到mod_headers部分,果然,这一切都按预期工作。现在我可以让墙壁从我的额头上休息一下。

  <IfModule mod_headers.c>
    Header append Cache-Control "public, no-transform"
  </IfModule>