28112 sujets

CSS et mise en forme, CSS3

Bonjour,

Je me heurte depuis hier à un problème.

Lorsque je modifie une page avec Dreamweaver, seules les modifications apportées aux fichiers autres que CSS sont répercutées dans l'affichage en rafraîchissant la page web (je travaille directement en ligne), même en forçant avec ctrl+F5.

Et ce quel que soit le navigateur utilisé, FF, Chrome ou IE. Si je vide le cache du navigateur, et recharge la page, elle s'actualise comme il faut. Si j'utilise l'option "Afficher dans un navigateur" de Dreamweaver, l'affichage, en local donc, est correctement actualisé.

Lorsque je vérifie le fichier CSS sur le serveur, il est correct (les modifications sont là). Il s'agit donc bien du bon fichier CSS.

Je n'avais jamais rencontré ce problème auparavant, et je me demande d'où cela peut-il venir et comment le régler ? Je ne peux pas m'amuser à vider le cache à chaque modification Smiley smile

Merci par avance.

Mat
Modifié par cyberlp23 (01 Apr 2015 - 09:41)
Hello,
à condition de travailler avec des pages en .php et non .html, on peut forcer la mise à jour auto des fichiers css en ajoutant une valeur variable et toujours différente après le nom.extension,
exemple :


<link type="text/css" rel="stylesheet" href="styles.css?t=<? echo time(); ?>" media="all">


time() prendra une valeur différente chaque seconde, et le fichier css appelé sera toujours la dernière version.
Le principe fonctionne aussi pour forcer la mise à jour des images, par exemple

on peut aussi écrire plus simplement : href="styles.css?<? echo time(); ?>"
salut,
il faut quand même faire attention à cette pratique vu qu'ici on empêche en permanence la mise en cache. Cette pratique peut être bonne pour des tests en local mais il faudrait l'éviter en ligne.
Le mieux est encore de travailler en local avant de publier quoi que ce soit.
Il existe des techniques qui reposent sur principe pour gérer une mise en cache des fichiers, je te laisse lire.
Zelalsan a écrit :
salut,
il faut quand même faire attention à cette pratique vu qu'ici on empêche en permanence la mise en cache. Cette pratique peut être bonne pour des tests en local mais il faudrait l'éviter en ligne..

Ok, je vais aller jeter un oeil à ton lien. Mais pourquoi est-ce mauvais d'empêcher la mise en cache quand on travaille en ligne ?
cyberlp23 a écrit :

Ok, je vais aller jeter un oeil à ton lien. Mais pourquoi est-ce mauvais d'empêcher la mise en cache quand on travaille en ligne ?

Parce que les caches ont été inventés pour faire gagner du temps au chargement des fichiers. Si tu empêches le cache de fonctionner tu peux fortement ralentir le fonctionnement de ton site.
Ce que je fais dans certains cas: au lieu de mettre "nom-du-fichier.ext" je mets "nom-du-fichier.ext?date-de-modification". Si la date de mod. est la même, le navigateur client ne demande pas le rechargement du fichier et peut donc tirer parti du cache.
Le problème est de bien s'assurer que la référence au fichier est bien mise à jour. Je ne le fais donc que pour les fichiers dont la référence est générée côté serveur par un programme PHP.