Feuilles css en cache ?
29 messages
• Page 1 sur 2 • 1, 2
Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics
-

xdeslandes - WRInaute occasionnel

- Messages: 391
- Inscription: 29 Déc 2004
Feuilles css en cache ?
Bonjour,
il me semble qu'une feuille de style externe (.css donc) n'est chargée qu'une fois par le navigateur client. Mais le problème, c'est que si'lon vient à laz modifier, le client ne verra pas les effets de cette nouvelle feuille, car son navigateur utilisera l'ancien.
Je me trompe ? Comment éviter de demander à l'internaute d'actualiser sa page ?
il me semble qu'une feuille de style externe (.css donc) n'est chargée qu'une fois par le navigateur client. Mais le problème, c'est que si'lon vient à laz modifier, le client ne verra pas les effets de cette nouvelle feuille, car son navigateur utilisera l'ancien.
Je me trompe ? Comment éviter de demander à l'internaute d'actualiser sa page ?
-

sureau - WRInaute discret

- Messages: 195
- Inscription: 7 Mar 2005
Tu peux faire style d'en appeler une autre en lui passant ds paramètres inutiles :
<link rel="stylesheet" type="text/css" href="images/style.css" />
puis
<link rel="stylesheet" type="text/css" href="images/style.css?12345" />
sur mon validateur xhml j ai pas d'erreures
<link rel="stylesheet" type="text/css" href="images/style.css" />
puis
<link rel="stylesheet" type="text/css" href="images/style.css?12345" />
sur mon validateur xhml j ai pas d'erreures
-

xdeslandes - WRInaute occasionnel

- Messages: 391
- Inscription: 29 Déc 2004
Ca marche ça ??? Tu utilises une tolérance du navigateur, non ?
-

e-kiwi - Modérateur

- Messages: 15542
- Inscription: 23 Déc 2003
je fais ça pour mes elements type flash qui sont jamais mis à jour ^^ je rajoute le timestamp au nom du fichier. par contre pour un css, il serait rechargé à chaque page. rajoutes-y l'heure ou un truc du style
par contre je rajoute aps en parametre mais bien dans le nom du fichier (ré-ecrit en rewriting) je ne sais pas si la méthode de passer en parametre est fiable ou non
par contre je rajoute aps en parametre mais bien dans le nom du fichier (ré-ecrit en rewriting) je ne sais pas si la méthode de passer en parametre est fiable ou non
-

xdeslandes - WRInaute occasionnel

- Messages: 391
- Inscription: 29 Déc 2004
Merci de vos précieux conseils, mais :
1- cela me parait bien compliqué, même rewrité. Tant qu'à renommer le fichier, autant appeler style1.css, puis style2.css pour la deuxième version, puis style3.css, etc, non ?
2- il n'existe pas d'instruction à donner au navigateur, genre balise meta ? ou une instruction php-unix style "lastmodified" ?
1- cela me parait bien compliqué, même rewrité. Tant qu'à renommer le fichier, autant appeler style1.css, puis style2.css pour la deuxième version, puis style3.css, etc, non ?
2- il n'existe pas d'instruction à donner au navigateur, genre balise meta ? ou une instruction php-unix style "lastmodified" ?
-

e-kiwi - Modérateur

- Messages: 15542
- Inscription: 23 Déc 2003
moi ca me parait pas compliqué, t'appelles dans ton code osurce de la page style-<? echo timestamp() ?>.css
et dans ton htaccess :
rewrite style-(.+).css style.css
mais si tu veux changer son nom, oui aussi, ca permet d'alleger les hits de ton fichier
et dans ton htaccess :
rewrite style-(.+).css style.css
mais si tu veux changer son nom, oui aussi, ca permet d'alleger les hits de ton fichier
-

sureau - WRInaute discret

- Messages: 195
- Inscription: 7 Mar 2005
tu peux interdir le cache du navigateur, mais je suis pas sur que ca marche pour les css :
- Code: Tout sélectionner
$CachePlus = "";
if (ereg("MSIE [56789]", (isset($HTTP_USER_AGENT)) ? $HTTP_USER_AGENT : getenv("HTTP_USER_AGENT"))) $CachePlus = ", pre-check=0, post-check=0, max-age=0";
$now = gmdate('D, d M Y H:i:s') . ' GMT';
header("Expires: $now");
header("Last-Modified: $now");
header("Cache-Control: no-cache, must-revalidate".$CachePlus);
header("Pragma: no-cache");
-

xdeslandes - WRInaute occasionnel

- Messages: 391
- Inscription: 29 Déc 2004
Donc, e-kiwi, le navigateur croit qu'il y a un nouveau fichier style à charger, il fait donc une requête au serveur, mais ce dernier lui renvoie quand même style.css (qui a été éventuellement mis à jour entre temps).
Avec cela, je suis sûr que le navigateur rechargera style.css à fois qu'une page est chargée (i.e. chaque fois que le timestamp change, i.e.à chaque seconde serveur), mais cela diminue notablement le temps de chargement des pages, non ?
Avec cela, je suis sûr que le navigateur rechargera style.css à fois qu'une page est chargée (i.e. chaque fois que le timestamp change, i.e.à chaque seconde serveur), mais cela diminue notablement le temps de chargement des pages, non ?
- thierry8
- WRInaute accro

- Messages: 3251
- Inscription: 11 Juil 2005
sureau a écrit:tu peux interdir le cache du navigateur, mais je suis pas sur que ca marche pour les css :
- Code: Tout sélectionner
$CachePlus = "";
if (ereg("MSIE [56789]", (isset($HTTP_USER_AGENT)) ? $HTTP_USER_AGENT : getenv("HTTP_USER_AGENT"))) $CachePlus = ", pre-check=0, post-check=0, max-age=0";
$now = gmdate('D, d M Y H:i:s') . ' GMT';
header("Expires: $now");
header("Last-Modified: $now");
header("Cache-Control: no-cache, must-revalidate".$CachePlus);
header("Pragma: no-cache");
tu m'avais déjà donné cela mais ça ne fonctionne pas!
-

petitchevalroux - WRInaute discret

- Messages: 190
- Inscription: 31 Mai 2006
Re: Feuilles css en cache ?
je viens d'écrire un article qui montre comment combiner le header expire et un css à jour :
-http://postit.petitchevalroux.net/astuces-divers/faire-versioning-fichier-statique-astuces.198.html
, j'utilise la même technique que sureau avec le md5 du fichier css
-http://postit.petitchevalroux.net/astuces-divers/faire-versioning-fichier-statique-astuces.198.html
, j'utilise la même technique que sureau avec le md5 du fichier css
-

Marie-Aude - Modérateur

- Messages: 11173
- Inscription: 5 Juin 2006
Re: Feuilles css en cache ?
Ca c'est du déterrage de topic !!!
-

gusterman - WRInaute discret

- Messages: 55
- Inscription: 13 Nov 2008
Re: Feuilles css en cache ?
Pour ma part, j'appelle mon CSS de la sorte :
main.css?v=<?=@filemtime('main.css')?>
filemtime() retourne la date de dernière modification du fichier (format unixtime), donc dès que le css est modifié, il retourne une série de chiffre différent, rechargeant le CSS.
http://fr3.php.net/manual/fr/function.filemtime.php
main.css?v=<?=@filemtime('main.css')?>
filemtime() retourne la date de dernière modification du fichier (format unixtime), donc dès que le css est modifié, il retourne une série de chiffre différent, rechargeant le CSS.
http://fr3.php.net/manual/fr/function.filemtime.php
29 messages
• Page 1 sur 2 • 1, 2
Formation recommandée sur ce thème :
Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par les experts Google Analytics de Ranking Metrics.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Feuilles de style css et balise H1
- Goggle crawle les feuilles de styles CSS
- Feuilles de styles CSS : pourquoi vos mailings arrivent en vrac
- Les feuilles de style.css peuvent-elles nuire au référecnement?
- css et cache
- texte caché via du CSS.
- Google cache et le CSS
- Css et mise à jour cache
- code CSS et cache de Google
- Lien caché (css) compte en tant que BL ?
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

