2 votes

Comment s'assurer que les clients mettent à jour la mémoire cache de leur navigateur lorsque mon site web est mis à jour ?

J'utilise le HTTP 1.1 Cache-Control pour mettre en œuvre la mise en cache côté client. Comme je ne mets mon site Web à jour qu'une fois par mois, j'aimerais que la mise en place de la mise en cache du côté du client soit possible. CSS y JS pour être mis en cache pendant 30 jours avec Cache-Control: max-age=2592000 . Le problème est que la période de 30 jours définie par Cache-Control ne coïncide pas avec le cycle de mise à jour du site web, il commence à partir du moment où les utilisateurs visitent le site et se termine 30 jours plus tard, ce qui signifie qu'une mise à jour pourrait avoir lieu entre-temps et que les utilisateurs fonctionneraient avec un contenu obsolète pendant un certain temps, ce qui pourrait casser le rendu du site web si, par exemple, l'application HTML y CSS ne correspondent plus.

Comment puis-je mettre le contenu en cache côté client pour des périodes de plusieurs jours tout en incitant les utilisateurs à rafraîchir leur écran ? CSS/JS des fichiers après la mise à jour du site web ?

Une solution à laquelle je pourrais penser est que si les mises à jour du site web peuvent être programmées, la max-age renvoyée par le serveur pourrait être diminuée chaque jour en conséquence, de sorte que, quelle que soit la date à laquelle les internautes visitent le site, la fin de la période de mise en cache coïnciderait avec la mise à jour du site, mais modifier la configuration du serveur chaque jour va à l'encontre de l'un de mes principes d'administrateur système (une fois qu'il fonctionne, il ne faut pas y toucher).

4voto

desigeek Points 1965

Ajouter empreintes digitales/hachures vos URL CSS et JS et définissez de futurs en-têtes Expires/Cache-Control.

C'est également la technique que Rails Pipeline d'actifs utilise.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X