Question

Je suis en cours d'exécution Google PageSpeed sur mon site et me dire que j'ai besoin de
"Spécifier un cache validateur."

Les ressources suivantes sont manque un cache validateur.Les ressources qui ne spécifiez pas un cache validateur ne peut pas être actualisées de façon efficace.Spécifier de Dernière modification ou de l'en-tête ETag pour permettre la validation du cache pour les ressources suivantes:

...puis il énumère les images, CSS, JS, etc.

Selon http://code.google.com/speed/page-speed/docs/caching.html#LeverageBrowserCaching:

Définir la date de Dernière modification de la dernière fois que la ressource a été modifiée.Si la date de Dernière modification est suffisamment assez loin dans le passé, les chances sont que le navigateur n'est pas réextraire il.

J'ai la suite dans ma .htaccess:

<IfModule mod_headers.c>
    <FilesMatch "\.(bmp|css|flv|gif|ico|jpg|jpeg|js|pdf|png|svg|swf|tif|tiff)$">
        Header set Last-Modified "Tue, 31 Aug 2010 00:00:00 GMT"
    </FilesMatch>
</IfModule>

Ce que je fais mal?

Était-ce utile?

La solution

Je pense que le problème que vous rencontrez est avec Expire: et pas avec Last-Modified:.Apache par défaut envoyer le fichier Last-Modified: l'en-tête basé sur la date du fichier.Je suggère le retrait de la partie supérieure de code et de le remplacer par le suivant:

<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresDefault "access plus 1 year"
</IfModule>

Essayez, si cela ne fonctionne pas, essayez d'ajouter ceci:

<IfModule mod_headers.c>
    <FilesMatch "\.(bmp|css|flv|gif|ico|jpg|jpeg|js|pdf|png|svg|swf|tif|tiff)$">
        Header set Last-Modified "Mon, 31 Aug 2009 00:00:00 GMT"
    </FilesMatch>
</IfModule>

Autres conseils

Afin de "Définir Un Cache Validateur" vous avez besoin d'envoyer les éléments suivants dans votre en-têtes:

Expires ou Cache-Control: max-age

ET

Last-Modified ou ETag

Ainsi, par exemple, en PHP, vous pouvez ajouter les suivantes pour les fichiers CSS et JS:

<filesMatch "\.(js|css)$">
    Header set Expires "Thu, 21 May 2013 20:00:00 GMT"
    Header set Last-Modified "Thu, 21 May 2012 20:00:00 GMT"
</filesMatch>

Cela permettra de satisfaire Google Pagespeed calculatrice.

J'ai testé tous codes ci-dessus, Mais ne voyons aucun changement dans gtmetrix rang.À l'aide de cette amélioration de Cache-Control (Spécifier un cache validateur) de rang pour mon site wordpress:

## EXPIRES CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access plus 1 year"
</IfModule>
## EXPIRES CACHING ##

<ifModule mod_headers.c>
  <filesMatch "\\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
    Header set Cache-Control "max-age=2592000, public"
  </filesMatch>

  <filesMatch "\\.(css)$">
    Header set Cache-Control "max-age=2592000, public"
  </filesMatch>

  <filesMatch "\\.(js)$">
    Header set Cache-Control "max-age=216000, private"
  </filesMatch>

  <filesMatch "\\.(xml|txt)$">
    Header set Cache-Control "max-age=216000, public, must-revalidate"
  </filesMatch>

  <filesMatch "\\.(html|htm|php)$">
    Header set Cache-Control "max-age=1, private, must-revalidate"
  </filesMatch>
</ifModule>

Je vous recommande de le personnaliser max-age valeurs pour votre site et les fichiers vous-même.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top