Arrière-plan
Je suis en train d'écrire et d'utiliser un de très simple basé sur CGI (Perl) outil de gestion de contenu pour les deux pro-bono sites web. Il fournit à l'administrateur du site avec les formulaires HTML pour les événements où ils remplir les champs (date, lieu, titre, description, liens, etc...) et de l'enregistrer. Sur ce formulaire, j'permettre à l'administrateur de télécharger une image liée à l'événement. Sur la page HTML de l'affichage de la forme, je suis également afficher un aperçu de l'image en ligne (balise HTML < img>).
Le Problème
Le problème se produit lorsque l'administrateur veut changer l'image. Il serait juste de frapper le bouton "parcourir", sélectionnez une photo et appuyez sur ok. Et cela fonctionne bien.
Une fois l'image téléchargée, mon back-end CGI gère l'upload et recharge le formulaire correctement.
Le problème est que l'image affichée ne pas vous rafraîchir. L'ancienne image est toujours montré, même si la base de données contient l'image de droite. J'ai rétréci vers le bas pour le fait que l'IMAGE EST mis en CACHE dans le navigateur web. Si l'administrateur frappe le bouton RECHARGER de Firefox/Explorer/Safari, tout est actualisé fine et la nouvelle image s'affiche.
Ma Solution Ne Fonctionne Pas
J'essaye de contrôler le cache en écriture du HTTP Expiration de l'instruction à une date très loin dans le passé.
Expires: Mon, 15 Sep 2003 1:00:00 GMT
Rappelez-vous que je suis sur le côté administratif et je ne m'en soucie pas vraiment si les pages prend un peu plus de temps à charger, car ils sont toujours expiré.
Mais, cela ne fonctionne pas non plus.
Notes
Lors du téléchargement d'une image, son nom n'est pas conservé dans la base de données. Il est renommé comme Image.jpg (simplement les choses lors de son utilisation). Quand remplacer l'image existante par une nouvelle, le nom ne change pas non plus. Juste le contenu de l'image des modifications de fichiers.
Le serveur web est fourni par le service d'hébergement/fournisseur de services internet. Il utilise Apache.
Question
Est-il un moyen pour forcer le navigateur web pour ne PAS mettre en cache les choses à partir de cette page, même pas les images?
Je suis en jonglant avec l'option à fait "enregistrer le nom de fichier" avec la base de données. De cette façon, si l'image est modifiée, le src de la balise IMG vont également changer. Toutefois, cela exige beaucoup de changements dans l'ensemble du site et j'ai plutôt de ne pas le faire si j'ai une meilleure solution. Aussi, ce ne sera toujours pas fonctionner si la nouvelle image téléchargée a le même nom (par exemple l'image est retouchée un peu et re-téléchargé).