2009-11-20 3 views
0

J'ai un site qui utilise un sprite CSS pour toutes les images. J'ai défini le fichier .htaccess pour définir les en-têtes expirés dans le futur, car ils recommandent d'améliorer les performances du site.Les images du site ne sont pas actualisées après la définition des en-têtes expirés .htaccess

Cependant, lorsque j'ai mis à jour l'image d'image-objet, aucun de mes navigateurs sur deux ordinateurs différents semble chercher la nouvelle image.

J'ai supprimé le .htaccess plusieurs fois mais pas de chance.

Je suis sûr que cela doit être facile comme bonjour à réparer mais maintenant je suis à court d'options.

Voici le code dans mon fichier .htaccess :

# CONFIGURE media caching 
# 
Header unset ETag 
FileETag None 
<FilesMatch "(?i)^.*\.(ico|flv|jpg|jpeg|png|gif|js|css)$"> 
Header unset Last-Modified 
Header set Expires "Fri, 21 Dec 2012 00:00:00 GMT" 
Header set Cache-Control "public, no-transform" 
</FilesMatch> 

<IfModule mod_deflate.c> 
<FilesMatch "\.(js|css)$"> 
SetOutputFilter DEFLATE 
</FilesMatch> 
</IfModule> 

Répondre

0

lecture de la documentation GoDaddy, je vois que vous avez besoin de mettre à jour "Configuration 2.0" http://help.godaddy.com/article/1078

Il aurait été plus évident si GoDaddy n'a pas supprimé la version Apache de leurs en-têtes http.

1

En définissant la date du cache à une date ultérieure, vous avez demandé au navigateur de stocker l'image localement jusqu'à cette date et de ne pas la demander au serveur. Par conséquent, il ne se met pas à jour lorsque vous modifiez l'image sur le serveur. Pour le débogage, vous pouvez contourner ce problème en utilisant Ctrl + F5 pour effectuer une actualisation matérielle et demander tous les fichiers du serveur.

Pour la production, vous devez contourner ce problème correctement. Il est pratique courante pour joindre un numéro de version ou dernière date mise à jour des images, css, etc. Dans ce cas, vous pouvez mettre ceci dans votre css:

background: url(/images/my_image.png?201004071748); 

puis lorsque vous modifiez l'image que vous mettez à jour la date. De cette façon, lorsque le navigateur analyse le CSS et demande l'image, il pense qu'il s'agit d'une image différente de celle qu'il a mise en cache et envoie une nouvelle requête au serveur pour l'image.

Questions connexes