Bonjour.
Je souhaite mettre en cache les images de mon site afin que l'utilisateur n'ait pas à les télécharger du serveur web à chaque fois qu'il affiche une page sur laquelle elles apparaissent.
Pour faire mes tests, j'ai voulu faire simple :
j'ai simplement placé un fichier index.php contenant un lien vers un fichier test.html contenant une image (assez lourde, volontairement), et un lien de retour vers index.php, et tout ça, à la racine de mon site (/www)
Je vide le cache de Safari (version PC, je suis en fait un mac user forcé à travailler sous windows... :q) pour être tranquille. Ensuite je tape l'url de mon site pour afficher index.php, puis je clique sur le lien, qui m'amène vers test.html. Comme j'ai vidé mon cache, il me télécharge naturellement l'image. Si je reviens ensuite sur index.php, et que je réutilise le lien vers test.html, l'image utilisée est celle stockée dans le cache du navigateur, m'évitant d'avoir à la re-télécharger.
Tout ça est parfait, mais...
Si je ferme Safari, et que je reviens sur index.php, et que je clique sur mon lien, l'image doit être re-téléchargée, alors que j'aurais voulu que ce soit celle du cache qui soit utilisée.
Je me suis donc renseigné, et j'ai pu trouver pas mal d'infos, notamment l'utilisation des header cache-control, etc., ce que je me suis empressé d'essayer.
J'ai donc placé ce morceau de code dans mon .htaccess :
Seulement, ça n'a pas l'air de changer quoi que ce soit à mon problème (je n'ai évidemment pas d'erreur 5xx, donc à priori le code est compris par le serveur)...
Bref, quelqu'un saurait-il m'expliquer, si c'est possible - ce dont je ne doute pas, comment forcer un navigateur à utiliser les images qu'il a stockées dans son cache plutôt que d'aller les re-télécharger sur le serveur web, et ce, même après avoir été fermé puis ré-ouvert ?
Merci d'avance.
Modifié par phpdoesnotcare (23 Apr 2010 - 21:20)
Je souhaite mettre en cache les images de mon site afin que l'utilisateur n'ait pas à les télécharger du serveur web à chaque fois qu'il affiche une page sur laquelle elles apparaissent.
Pour faire mes tests, j'ai voulu faire simple :
j'ai simplement placé un fichier index.php contenant un lien vers un fichier test.html contenant une image (assez lourde, volontairement), et un lien de retour vers index.php, et tout ça, à la racine de mon site (/www)
Je vide le cache de Safari (version PC, je suis en fait un mac user forcé à travailler sous windows... :q) pour être tranquille. Ensuite je tape l'url de mon site pour afficher index.php, puis je clique sur le lien, qui m'amène vers test.html. Comme j'ai vidé mon cache, il me télécharge naturellement l'image. Si je reviens ensuite sur index.php, et que je réutilise le lien vers test.html, l'image utilisée est celle stockée dans le cache du navigateur, m'évitant d'avoir à la re-télécharger.
Tout ça est parfait, mais...
Si je ferme Safari, et que je reviens sur index.php, et que je clique sur mon lien, l'image doit être re-téléchargée, alors que j'aurais voulu que ce soit celle du cache qui soit utilisée.
Je me suis donc renseigné, et j'ai pu trouver pas mal d'infos, notamment l'utilisation des header cache-control, etc., ce que je me suis empressé d'essayer.
J'ai donc placé ce morceau de code dans mon .htaccess :
<filesmatch "\.(css|gif|jpe?g|js|png)$">
header set cache-control "max-age=15724800, public"
header set expires "Fri, 21 Dec 2012 00:00:00 GMT"
</filesmatch>
Seulement, ça n'a pas l'air de changer quoi que ce soit à mon problème (je n'ai évidemment pas d'erreur 5xx, donc à priori le code est compris par le serveur)...
Bref, quelqu'un saurait-il m'expliquer, si c'est possible - ce dont je ne doute pas, comment forcer un navigateur à utiliser les images qu'il a stockées dans son cache plutôt que d'aller les re-télécharger sur le serveur web, et ce, même après avoir été fermé puis ré-ouvert ?
Merci d'avance.
Modifié par phpdoesnotcare (23 Apr 2010 - 21:20)