J'ai un script php qui génère des images * .png mais pas les stocker sur le serveur. Ces images seront montrées à un même utilisateur à plusieurs reprises. Je cherche un moyen de cache ces images. Je suis en mesure d'envoyer l'en-tête de statut 304, le navigateur déclare également la page Web comme mise en cache au premier rafraîchissement (comme il est visible dans le web-inspecteur), mais la page Web est affichée vide. Après une seconde actualisation, même l'inspecteur Web est vide. Est-ce que quelqu'un peut m'aider et dire où j'ai foiré?Comment mettre en cache des images créées dynamiquement?
Notes:
- J'ai lu this post mais il ne m'a pas aidé.
- En utilisant MAMP (PHP version 7.0.10)
- Je suis un débutant, mes excuses pour le code moche.
Voici les principales lignes du fichier:
session_start();
header("Content-type: image/jpeg");
//A little require_once() here on some functions stored in an other file.
$originalSource = getSource($_GET['src']);
if (isset($_COOKIE[sha1($originalSource)]) && $_COOKIE[sha1($originalSource)]) {
header("HTTP/1.1 304 Not Modified");
die;
} else {
setcookie (sha1($originalSource), true, time()+10);
$offset = 10;
$expire = "Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT";
header($expire);
header("Cache-Control: max-age=".$offset);
header("Last-Modified: Wed, 25 Feb 2015 12:00:00 GMT");
}
//The entire image generation process after this
Merci pour votre aide
Merci @deceze! Donc, mon code ressemble à [this] (http://pastebin.com/7NwDTerH). Mais il ne cache toujours pas. [These] (http://pastebin.com/W9812psa) sont les en-têtes que je reçois. 1. Dois-je activer "APC" ou "OPCache" sur MAMP? 2. Ai-je besoin de 'session_start();'? 3. Est-il possible que 'Pragma = no-cache' provoque le problème? Désolé pour la grande quantité de questions. – Faegy
APC etc. n'a rien à voir avec ce type de cache. Et oui, 'Pragma no-cache' semble contre-productif ici. – deceze
Notez également que vos 'Date' et' Expires' sont identiques, ce qui signifie qu'il expire immédiatement. – deceze