web-dev-qa-db-fra.com

L'en-tête de contrôle de cache spécifié dans .htaccess ne fonctionne pas pour les fichiers statiques

J'essaie d'utiliser Google PageSpeed ​​Insights pour accélérer mon site Web - www.edmhunters.com.

Tout d'abord, voici à quoi ressemble mon fichier .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>

L'en-tête Cache-Control ne fonctionne étrangement que pour les fichiers multimédias et non les fichiers statiques.

Par exemple. La sortie de www.edmhunters.com/media/dj/images/deadmau5_2.jpg sur redbot.org ressemble à ceci

 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

La sortie de www.edmhunters.com/static/img/bp-logo.9bf55788f1b6.jpg ressemble à ceci

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

Toujours selon Google PageSpeed ​​Insights pour ma page d'accueil , le code HTML est réduit, alors que Google PageSpeed ​​Insights pour une autre page indique que mon code HTML n'est pas réduit.

Pourquoi ce comportement différent?

2
Yin Yang

Je servais mes fichiers statiques avec Django, tandis que mes fichiers multimédias utilisaient Apache. Servir mes fichiers statiques via Apache a résolu ce problème.

3
Yin Yang