2011-03-01 55 views
6

我不明白为什么在我正在处理的网站中,普通的旧JPEG图像(每个都有大约12打,< 10 KB)不会采用缓存控制标头正在强制喂食。我使用的.htaccess规则基于最近的HTML5 Boilerplate .htaccess file(下面的相关部分)。奇怪的是,网站中的PNG数量相当,除了其中两个之外,缓存控制标头完美地工作。mod_expires没有在JPEG图像上设置缓存控制标头

<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了权利,通过和找不到任何合理的解释。我也弄了个头,分页和Chrome审核了它几个小时后死亡,而我仍然无能为力。

编辑:如下所述,该网站的网站根目录中只有一个.htaccess文件。 JPEG会通过MIME类型image/jpeg罚款,但缓存控制标题丢失,我不明白为什么。

回答

5

我将no-transform添加到mod_headers部分,果然,这一切都按预期工作。现在我可以把额头上的墙打破了。

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

我想你可以接受你自己的答案。 – 2011-03-01 14:57:56

+0

@Clodoaldo不是两天。 – Marcel 2011-03-01 15:27:17