Interdire la mise en cache des images

WRInaute discret
Bonjour,
Je rencontre un ch'ti problème, mais très gênant.
Dans mon interface de saisi d'article, je peux importer une image.
Oui, mais voila, quand la page se recharge la nouvelle image charger ne remplace pas forcement l'ancienne image.
Le phénomène est plutôt aléatoire. Certaine foi ça marche d'autre foi pas.
Pourtant coté code j'ai presque tout fait :
Les métas
Code:
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="0">

Les headers
Code:
header('Pragma: no-cache');
header('Expires: 0');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-cache, must-revalidate');

Donc je me tourne du coté du htaccess.
Est il possible d'interdire la mise en cache des images (jpg|jpeg|png).
Ou alors forcer le navigateur à les recharger ?

Merci pour votre aide
 
WRInaute impliqué
Derrière l'adresse de l'image, ajoute : ?t=83239 (tu mets ce que tu veux).
Ça force à recharger l'image sans désactiver le cache ;)
 
WRInaute discret
Blount a dit:
Derrière l'adresse de l'image, ajoute : ?t=83239 (tu mets ce que tu veux).
Ça force à recharger l'image sans désactiver le cache ;)

Tu peux utiliser "filemtime" avec php pour obtenir un timestamp correspondant à la dernière modification d'un fichier.
Perso je l'utilises avec les fichiers css, js, etc et certaines images susceptibles de changer.

Exemple:
Code:
echo '<link rel="stylesheet" href="css/style.css?'.filemtime("css/style.css").'" type="text/css" />';

Résultat:
Code:
<link rel="stylesheet" href="css/style.css?1372530059" type="text/css" />

La valeur "1372530059" correspond à la dernière modification du fichier style.css (sous forme de timestamp) et ne changera que lorsque le fichier en question sera de nouveau modifié. De ce fait, avec cette technique, aucun navigateur ne rechargera inutilement ce fichier mais uniquement quand il le faut.
 
Discussions similaires
Haut