2013-04-05 2 views
5

Je suis en train de mettre à jour mon site fréquemment après avoir terminé les mises à jour mes clients rapportant que les anciennes images & sont chargées au lieu de nouvelles. Je sais qu'ils viennent du cache de leur navigateur mais est-ce que je peux forcer les scripts à ne pas charger à partir du cache dans le serveur. J'utilise nginx avec php-fpm.nginx empêche le chargement depuis le cache

+1

Vous pouvez essayer d'utiliser des en-têtes comme ceux-ci: 'header ('Expire: jeu, 01-Jan-70 00:00:01 GMT'); header ('Dernière modification:'. Gmdate ('D, d M Y H: i: s'). 'GMT'); header ('Cache-Control: pas de magasin, pas de cache, doit-revalider'); header ('Cache-Control: post-vérification = 0, pré-contrôle = 0', faux); header ('Pragma: no-cache'); ' – vikingmaster

Répondre

11

Vous pouvez forcer les en-têtes HTTP à influencer le comportement de la mise en cache du navigateur, mais ce n'est probablement pas une bonne idée dans un environnement de production où vous souhaitez mettre en cache.

Donc il suffit d'utiliser quelque chose comme:

expires -1 

Pour forcer Cache-Control no-cache tête

Vérifiez ici pour plus d'informations:

http://wiki.nginx.org/HttpHeadersModule

Cela étant dit, je moi-même avons obtenu dans le habitude de juste changer l'image et les noms de fichiers statiques comme je les révise. Peut-être cela vient-il du fait de travailler avec CDN où cela peut être incroyablement utile. Donc, disons que j'ai des fichiers statiques que je pourrais mettre à jour souvent (c'est-à-dire qu'ils ne font pas partie d'un contenu spécifique). Je les nommerais comme:

someimagev1.jpg 
someimagev2.jpg 
somejs1.js 
somejs2.js 
etc. 

Je change les valeurs (et les liens dans la source HTML) selon les besoins.

Questions connexes