2016-10-10 2 views
0

Je travaille sur un site web utilisant php sur le serveur apache2.4 en backend & angularJS en frontend, j'ai un problème quand je mets à jour mon site web vers une nouvelle version les utilisateurs ne peuvent pas voir la dernière modification. donc j'ajouté ce .htaccess pour nettoyer le cache toutes les 1 h, mais il ne fonctionne pas comme je m'y attendais,Effacer le cache web automatiquement

FileETag None 
<ifModule mod_headers.c> 
    Header unset ETag 
    Header set Cache-Control "max-age=3600, must-revalidate, private" 
</ifModule> 
+0

est ce CSS et Javascript qui ne met pas à jour? Si oui, pourquoi ne renommez-vous pas vos fichiers avec un numéro croissant de chaque changement, par ex. 'script1.css'. Cela forcera le navigateur à mettre à jour vers la dernière version. – Kitson88

+0

@ Kitson88 Et c'est censé être une solution? Cela fonctionne certainement, mais il y a un sens à utiliser des caches. Sinon, on pourrait simplement nier la mise en cache et tout va bien. – arkascha

+0

Le module d'en-têtes est-il réellement chargé? Êtes-vous sûr? Pourquoi? – arkascha

Répondre

2

Au sein de votre processus de construction, vous pouvez ajouter un paramètre de requête à vos fichiers statiques tels que JS/CSS comme: app.js?1476109496 (où epoch est une référence unique telle que epoch de déploiement, hash de commit ou similaire) qui amènerait les navigateurs à demander une nouvelle version sans avoir besoin de jouer avec votre .htaccess.

+0

Cela ne fonctionnera pas comme une chaîne de requête, car les navigateurs ne respectent pas toujours cette règle. Mieux vaut avoir l'horodatage dans le chemin du fichier. – fire