6

我无法弄清楚为什么< 10 KB我正在处理的网站中的普通旧 JPEG 图像(每个大约十几个)不会采用它们被强制馈送的缓存控制标头。.htaccess我使用的规则基于最新的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 的 mime 类型image/jpeg很好,但缺少缓存控制标头,我不知道为什么。

4

1 回答 1

5

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

  <IfModule mod_headers.c>
    Header append Cache-Control "public, no-transform"
  </IfModule>
于 2011-03-01T13:55:07.727 回答