web-dev-qa-db-ja.com

.htaccessで指定されたキャッシュコントロールヘッダーが静的ファイルに対して機能しない

Google PageSpeed Insightsを使用して、ウェブサイトwww.edmhunters.comを高速化しようとしています。

まず、私の.htaccessファイルは次のようになります

# -----------------------------------------------------------------------
# Caching for 1 Year
# -----------------------------------------------------------------------
<FilesMatch "\.(ico|svg|woff|eot|ttf)$">
Header set Cache-Control "max-age=31536000, public"
</FilesMatch>

# -----------------------------------------------------------------------
# Caching for 1 Week
# -----------------------------------------------------------------------
<FilesMatch "\.(jpg|png|gif|css|js)$">
Header set Cache-Control "max-age=604800, public"
</FilesMatch>

# -----------------------------------------------------------------------
# Defining MIME types to ensure the web server actually knows about them
# -----------------------------------------------------------------------
<IfModule mod_mime.c>
    AddType application/javascript          js
    AddType application/vnd.ms-fontobject   eot
    AddType application/x-font-ttf          ttf ttc
    AddType font/opentype                   otf
    AddType application/x-font-woff         woff
    AddType image/svg+xml                   svg svgz 
    AddEncoding gzip                        svgz
</Ifmodule>

# -----------------------------------------------------------------------
# Compressing output
# -----------------------------------------------------------------------
<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/css application/json
    AddOutputFilterByType DEFLATE application/javascript
    AddOutputFilterByType DEFLATE text/xml application/xml text/x-component
    AddOutputFilterByType DEFLATE application/xhtml+xml application/rss+xml application/atom+xml
    AddOutputFilterByType DEFLATE image/x-icon image/svg+xml application/vnd.ms-fontobject application/x-font-ttf font/opentype
</Ifmodule>

Cache-Controlヘッダーは奇妙なことに、静的ファイルではなくメディアファイルに対してのみ機能します。

例えば。 redbot.orgのwww.edmhunters.com/media/dj/images/deadmau5_2.jpgの出力は次のようになります

 HTTP/1.1 200 OK
    Date: Sun, 14 Sep 2014 06:01:54 GMT
    Server: Apache/2.4.7 (Ubuntu)
    Last-Modified: Thu, 11 Sep 2014 13:52:29 GMT
    ETag: "7391-502ca7aba5a6e"
    Accept-Ranges: bytes
    Content-Length: 29585
    Cache-Control: max-age=604800, public
    Keep-Alive: timeout=5, max=100
    Connection: Keep-Alive
    Content-Type: image/jpeg

Www.edmhunters.com/static/img/bp-logo.9bf55788f1b6.jpgの出力は次のようになります

HTTP/1.1 200 OK
    Date: Sun, 14 Sep 2014 05:43:28 GMT
    Server: Apache/2.4.7 (Ubuntu)
    Last-Modified: Tue, 26 Aug 2014 05:43:32 GMT
    ETag: 1409031812.62
    Content-Length: 2592
    Keep-Alive: timeout=5, max=100
    Connection: Keep-Alive
    Content-Type: image/jpeg

私のホームページのGoogle PageSpeed Insights によると、HTMLは縮小されますが、 別のページのGoogle PageSpeed Insights によると、HTMLは縮小されません。

なぜこの異なる動作ですか?

2
Yin Yang

Djangoを使用して静的ファイルを提供し、Apacheを使用してメディアファイルを提供していました。 Apacheを介して静的ファイルを提供すると、この問題は解決しました。

3
Yin Yang