Quelqu'un pourrait-il expliquer comment s'assurer que si je mettez à jour mon webApp, l'utilisateur obtient la dernière version des fichiers? P>
devrais-je ajouter une chaîne dynamique Merci, Boda Cydo. P> ? Version = aléatoire code> à la fin des fichiers de script et de CSS et modifiez-le comme je déploie des mises à jour? Ou quelle est une stratégie générale ici? P>
4 Réponses :
Comme vous le mentionnez, l'ajout d'une chaîne de requête à l'URL de stylesheet / script est une astuce soignée pour obtenir le contrôle de la commande lorsque les versions en cache sont "invalidées".
Au lieu d'ajouter une chaîne aléatoire, j'utilise habituellement la dernière modification Date du fichier correspondant du système de fichiers. Pour améliorer le facteur de refroidissement, vous pouvez convertir la date à une forme numérique et le formater en Hex lors de la construction de l'URL: -) P>
<script type="text/javascript" src="script.js?v=1750493C88"></script> <link rel="stylesheet" type="text/css" href="style.css?v=1750493C88" />
Oui, la façon dont vous mentionnez est très courante et est une approche solide.
J'utilise personnellement le numéro de révision de Subversion de mes fichiers, mais vous pouvez utiliser quelque chose de significatif pour vous, même le dernier horodatage mis à jour du fichier. p>
Stackoverflow utilise le numéro de révision SVN: P>
<script type="text/javascript" src="http://sstatic.net/so/js/master.js?v=6180"> </script>
Hors de curiosité, comment se passe ce numéro de révision SVN?
I Mettez habituellement Vous pouvez également utiliser un numéro de version incrémenté chaque fois que le fichier est modifié. Cela fonctionne bien pour les bibliothèques comme JQuery qui ont des communiqués officiels, mais tend à être plus fastidieux que nécessaire pour les fichiers de votre propre site qui sont simplement modifiés au besoin. Bien sûr, vous pouvez toujours utiliser des numéros de version dans ce cas, mais j'ai tendance à trouver que c'est inutilement fastidieux (être quelque chose d'autre que vous devez maintenir). P> ? MTime code> à la fin du nom pour les images, les fichiers CSS et les fichiers JavaScript où
mTime code> est la dernière heure modifiée du fichier. P >
Il s'avère que Squid ne cache pas les fichiers avec un paramètre d'obtention. Vous devriez utiliser quelque chose comme script.2010-02-14.js si vous voulez que Squid se cache au nom du fichier. P>
"mais qui est meilleur: mylogo.1.2.gif ou mylogo.gif? v = 1.2? Pour gagner le Avantage de la mise en cache par des procurations populaires, évitez de fléchir avec une querytring et plutôt révéler le nom de fichier lui-même. " P>