J'ai observé les entêtes HTTP des images et fichiers JavaScript, lorsque j'accède directement au serveur Tomcat (sans passer par Apache Http).
Est-ce normal que j'ai des "No-cache" dans l'entête HTTP ?
Voici ce que m'indique Firebug :
- Pour une image insérée avec le tag <t:graphicImage> :
1 2 3 4 5 6
| Response Headers
Server Apache-Coyote/1.1
Pragma No-cache
Cache-Control no-cache
Expires Thu, 01 Jan 1970 01:00:00 CET
Date Tue, 30 Oct 2007 22:50:57 GMT |
- Idem pour un fichier JavaScript inséré avec la ligne :
<script type="text/javascript" src="<%= request.getContextPath()%>/js/utils.js"></script>
- Pour un script RichFaces, sur la 1e page (accueil) :
1 2 3 4 5 6 7 8 9
| Response Headers
Server Apache-Coyote/1.1
Pragma No-cache
Cache-Control max-age=86400
Expires Wed, 31 Oct 2007 22:50:57 GMT
Last-Modified Tue, 30 Oct 2007 22:50:23 GMT
Content-Type text/javascript
Content-Length 20283
Date Tue, 30 Oct 2007 22:50:57 GMT |
- Le même script, sur une autre page de l'appli ouverte dans un autre onglet, avec un lien avec "target" :
1 2 3 4 5 6 7 8 9
| Response Headers
Server Apache-Coyote/1.1
Pragma No-cache
Cache-Control no-cache
Expires Thu, 01 Jan 1970 01:00:00 CET
Last-Modified Tue, 30 Oct 2007 22:50:23 GMT
Content-Type text/javascript
Content-Length 20283
Date Tue, 30 Oct 2007 23:19:22 GMT |
Je ne comprends pas bien comment sont gerés ces entêtes HTTP, ni qui les gère :
- Est-ce MyFaces et/ou RichFaces qui positionnent ces "no-cache" ? => J'ai trouvé un bug en relation avec mon problème ([TOMAHAWK-774] - Browser does not cache resources), mais il aurait été corrigé dans Tomahawk 1.1.5, et j'utilise la v1.1.6
- Est-ce Tomcat ? => J'ai trouvé dans la doc un paramètre "cachingAllowed", mais par défaut il est à true. Et même en positionnant de façon explicite ce paramètre, ça ne semble rien changer.
Quelqu'un saurait-il me dire :
- comment agir sur l'entête HTTP des images et JavaScript avec JSF / RichFaces ?
- ce qu'il faut mettre dans ces entêts pour activer le cache ?
Merci d'avance.
Partager