Empêcher la mise en cache des fichiers CSS

Je développe un site Web simple utilisant PHP.

Configuration de développement: WAMP

Configuration de la production: LAMP

En testant, j’ai changé mon fichier CSS, mais lorsque je recharge la page, mon navigateur (pas sûr) utilise toujours l’ancien css en cache.

J’ai fait des recherches sur Google et trouvé différentes solutions que j’ai déjà essayées

  • Ajout d’une requête à la fin du css css/main.css?78923
  • Utiliser Ctrl + R (dans Firefox) pour forcer la récupération de la ressource
  • Désactiver la mise en cache de Firefox et utiliser le module complémentaire Clear Cache Firefox.

Lorsque rien de tout cela n’a fonctionné, j’ai fait un peu plus de recherche sur Google, où je suis tombé sur une page de stack ( ici ) où quelqu’un a suggéré qu’Apache met en cache les ressources. Donc, le problème n’est pas avec Firefox, mais avec le serveur. Le gars a également suggéré une solution que je ne comprenais pas (moi étant un débutant)

Ma question comporte deux parties:

  1. Est-il vrai que Apache met en cache les ressources ? (Comment vérifier si le mien fonctionne?)
  2. Comment l’empêcher de mettre en cache ?

PS: copier et coller la solution dans la question de la stack (celle que j’ai ci-dessus en tant que lien) n’a pas fonctionné 🙁

J’ai rencontré ce problème à plusieurs resockets et le problème est généralement sur les sites de production en appelant mon css comme ça

  

Lorsque vous déployez une mise à jour, changez simplement le v=1 en v=2 et cela forcera tous les navigateurs de vos utilisateurs à récupérer les nouvelles feuilles de style. Cela fonctionnera également pour les fichiers de script. Si vous consultez la source sur Google vous remarquerez qu’ils utilisent également cette approche.

J’avais le même problème avec mon système de développement LAMP, causé par un assembly réseau. J’ai réussi à m’en débarrasser en ajoutant ces deux lignes à mon config apache.

 EnableMMAP off EnableSendfile off 

Dans mes pages php, j’ajoute généralement la date et l’heure actuelles à la fin de votre css href:

  

Ref: Ici

Je sais que c’est une vieille question, mais je suis tombé sur cela et j’ai eu les mêmes problèmes. Voici un moyen rapide de ne pas conserver de cache sur un fichier:

  

L’utilisation de l’aide permet d’obtenir la version la plus récente à chaque chargement de la page.

  1. Apache (-modules) peut mettre en cache des ressources, mais ce n’est pas votre problème actuel.
  2. Désactivez votre browser, vider le cache lors du rechargement ou délivrer un css avec des en-têtes moddés. Vous pouvez écrire un script qui définit l’en-tête d’expiration afin que votre navigateur ait besoin d’une nouvelle version de votre css.

Quoi qu’il en soit, je ne comprends pas cela. Pour le développement, il est beaucoup plus facile de désactiver votre navigateur ou d’appuyer sur Ctrl + r.

J’utilise toujours httcacheclean lorsque httcacheclean change quelque chose dans les fichiers de ressources (js, css, etc.)