2011-03-01 58 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