Connexes: Apache: Comment puis-je forcer le navigateur à recharger des fichiers CSS?
Je construis une page XML (sur Apache2) censée être traduite en xhtml par le navigateur. Mon serveur sert donc également un main.xslt
utilisé comme feuille de style par le fichier xml, comme dans le cas du scénario suivant. les fichiers css dans la question liée.
Toutefois, aucune des astuces fournies dans cette réponse, ni quelques problèmes sur SO ne résolvent le problème pour Opera. Alors que Firefox répond à F5 en récupérant non seulement le fichier xml mais également le fichier xslt, Opera ne recharge que le fichier xml. J'ai essayé les deux, en configurant l'en-tête HTTP Last-Modified
via un fichier .htaccess
et en utilisant le module expires
d'Apache2.
Voici à quoi ressemble mon .htaccess
:
AddType text/xsl;charset=utf-8 .xslt
ExpiresByType text/xsl "modification plus 1 second"
Header set Last-Modified "Wed, 08 Jan 2000 23:11:55 GMT"
#Header set Last-Modified "Wed, 08 Jan 2020 23:11:55 GMT"
Si j'ouvre moi-même le fichier xsl et le recharge manuellement, la présentation xml est également mise à jour, mais cela est fastidieux pour le développement .
Note: Il n'y a pas de php ni aucun type de script impliqué. Tout est statique.
Selon http://www.askapache.com/htaccess/using-http-headers-with-htaccess.html#100_Prevent_Files_cached , cela devrait faire l'affaire:
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
Vous pouvez simplement ajouter une chaîne de requête aléatoire file.css? Version = may15-2012 et faire modifier ces données. Le navigateur traitera la chaîne de requête comme un nouveau fichier et téléchargera à nouveau le fichier CSS/JS/Image.