bonsoir,
Pour reprendre ma proposition qui n'est pas vraiment une astuce mais une possibilité parmis d'autres et pour compléter et ajouter au propos de @OlivierC
Tout d'abord le rafraichissement d'une page et de son cache peut se faire simplement avec CTRL+F5. Un refresh ou reload en javascript en boucle est une très mauvaise idée et agaçant pour n'importe quel visiteur. De nombreux navigateurs d'ailleurs bloque tout simplement ce genre de meta ou script .
Si c'est en cours de dev, le refresh est à automatiser depuis l'éditeur.
Pour reprendre le paramètre de l'url:
Il ne fait aucun doute à aucun d'entre vous qu'une url du type index.php?article=article1 et que index.php?article=article2 sont deux pages distinctes, aussi dans le cache .
Si je reprend avec des fichiers .css ou .js , c'est pareil, en ajoutant un paramètre, c'est une nouvelle url et si elle n'est pas encore en cache, alors il faut la charger.
donc monstyle.css?v=1.0 et monstyle.css?v=1.1 sont deux ressources distinctes
Noter que l'on peut configurer aussi le serveur pour qu'il traite les fichiers comme des fichiers php et se servir des header : voir https://www.php.net/manual/fr/function.header.php .
Donc au moment d'une maintenance et tests répétés pour le front ,
Manuellement, les touches CTRL+F5 vont en principe vider toutes les ressources en cache de la page appeler et la rafraichir entièrement, lorsque l'on veut seulement rafraichir une feuille de styles c'est too much !
En ajoutant un paramètre à L’URL avec une valeur aléatoire derrière, le problème de mise en cache est temporairement réglé pour celui qui est en train de faire cette maintenance
Un timestamp est le plus simple (en js c'est
date.now() et en php
time() par exemple.
monstyle.css?v=timeStamp
Quand les mise à jours sont finies, on incrémente le paramètre initial de 1 pour les visiteurs.
Noter aussi , que la gestion des caches peut s'effectuer depuis le fichier .htaccess aussi (Apache) Nginx à surement aussi les mêmes possibilité.
A mon humble avis,
* Faire recharger la page par votre éditeur de code Sinon, manuellement
* le timeStamp est le plus facile à mettre en place pour zapper le cache coté serveur
( attention au piège ou JavaScript charge une seconde feuille de styles sans la remplacer)
* Ne pas faire de modification sur le site en ligne, seulement la mise à jour.
Enfin, coté serveur, la logique voudrait de vérifier la date de dernière modifications du fichier pour forcer la remise en cache si besoin.
Bonnes fêtes
edit : @bongota je n'avais pas vu ta dernière réponse entretemps.
Pour les images par exemple, traité via htaccess et renvoyées par un script (htaccess pour empêcher l'affichage depuis un autre ndd et php avec header pour gérer le cache et include pour le fichier image. Les possibilité et options de configurations sont nombreuses. C'est comme la gestion des sites multilingues et la soupe à l'oignon. Il n'y a pas qu'une façon de faire, mais des situations, outils, moyens, compétences, choix qui en plus evoluent avec le temps.
Modifié par gcyrillus (26 Dec 2024 - 20:43)