Forcer ses visiteurs à vider leur cache ?

Tartif

WRInaute discret
Bonjour à tous,

J'ai un petit souci sur un de mes sites. J'ai signé avec un partenaire un accord d'habillage de mon site pour quelques jours par mois. Pour cela, j'ai modifié quelques fichiers de mon site pour mettre en place l'habillage.

Pour la mise en place pas de problème. Par contre, lorsque je supprime l'habillage (c'est à dire que je remplace les fichiers d'habillage par les fichiers normaux) et bien mes visiteurs continuent de voir l'habillage car leur cache n'a pas été vidé.

Comment puis-je faire pour les forcer à vider leur cache ? Si possible une seule fois, pour pas qu'il vide leur cache à chaque visite ?

J'utilise wordpress et le plugin WP Super Cache. Même en supprimant le cache de Wp Super Cahe cela ne change rien.

Merci d'avance
 

spout

WRInaute accro
Tu ajoutes un timestamp ou un numéro de version derrière la feuille de style:
PHP:
<span class="syntaxdefault"></span><span class="syntaxkeyword"><</span><span class="syntaxdefault">link&nbsp;href</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"/static/css/styles.css?123456789"&nbsp;</span><span class="syntaxdefault">rel</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"stylesheet"</span><span class="syntaxkeyword">>&nbsp;</span><span class="syntaxdefault"></span>

En PHP tu peux même lire la date de dernière modification du fichier CSS et le mettre en paramètre comme indiqué.
 

Tartif

WRInaute discret
Merci pour ta réponse. Le problème c'est que je n'utilise pas ma css pour faire ça mais un background cliquable que j'appelle directement dans le header.php de mon thème wordpress.
 

Blount

WRInaute impliqué
Tu as le droit de le faire sur une image :
Code:
<img src="image.jpg?123456789" alt="" />

Ou encore, dans un fichier CSS :
Code:
div {
    background-image: url("image.jpg?123456789");
}

En combinant avec ce que propose spout, tu forces le rafraichissement du CSS et des images.
 

ludoanimation

WRInaute impliqué
spout a dit:
Tu ajoutes un timestamp ou un numéro de version derrière la feuille de style:
PHP:
<span class="syntaxdefault"></span><span class="syntaxkeyword"><</span><span class="syntaxdefault">link href</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"/static/css/styles.css?123456789"</span><span class="syntaxdefault"> rel</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"stylesheet"</span><span class="syntaxkeyword">></span><span class="syntaxdefault"> </span>

En PHP tu peux même lire la date de dernière modification du fichier CSS et le mettre en paramètre comme indiqué.

ou

Code:
<link rel="StyleSheet" type="text/css" href="/css/nomdemoncss.<?php echo filemtime($_SERVER['DOCUMENT_ROOT'].'/css/nomdemoncss.css'); ?>.css" />

idem pour les JS

et dans le .htaccess

Code:
RewriteRule ^(css|js)/(.*)\.[0-9]+\.(.*)$ /$1/$2.$3 [L]

c'est la bidouille que je viens de faire aujourd'hui ( j'en avait marre de repondre aux utilisateurs qui me disaient ton site est tout déformé, vide ton cache ) et ca marche impec :D
 

Discussions similaires

Haut