2017-02-01 3 views
0

J'utilise le serveur apache tomcat et j'ai une application Web qui affiche plusieurs fichiers js, css et image. Je veux m'assurer que ces fichiers sont mis en cache par le navigateur afin qu'ils ne soient pas demandés à chaque fois. Cependant, j'ai remarqué que certains fichiers sont mis en cache alors que d'autres ne le sont pas. J'ai découvert que l'en-tête de réponse de l'application a Expires: "31 déc 1969 à 19:00". Après avoir traversé this j'ai retiré la contrainte de sécurité tomcat du fichier web.xml qui a supprimé l'en-tête avec succès. J'ai également configuré l'en-tête Expires dans mon application à 1 semaine à partir de maintenant. Cela aussi ne s'est pas assuré que les pages sont mises en cache. Ensuite, j'ai configuré l'en-tête Cache-Control sur public avec max-age défini sur 1 semaine. Aucun de ces changements ne m'aide. De plus, les pages mises en cache et se cache pas obtenir ont les mêmes en-têtes comme ci-dessous:Les pages ne sont pas mises en cache dans le navigateur

HTTP/1.1 200 OK 
Cache-Control: max-age=604800, public 
ETag: 240983 
Last-Modified: Fri, 09 Sep 2016 18:49:42 GMT 
Date: Wed, 01 Feb 2017 07:34:25 GMT 
via: HTTP/1.1 ab-d-klt-tom1 
Expires: Wed, 08 Feb 2017 07:35:29 GMT 
Content-Type: application/x-javascript 
Transfer-Encoding: chunked 
Content-Encoding: gzip 
Vary: Accept-Encoding 
X-FRAME-OPTIONS: SAMEORIGIN 
X-Powered-By: Servlet/3.0 
X-UA-Compatible: IE=edge 
Server: Apache 

En dehors de cela j'ai aussi essayé le ExpiresFilter comme décrit here sans chance.

EDIT: Mon application lors du déploiement dans un environnement Windows avec Tomcat et sans SSL met en cache avec succès tous les fichiers dans le navigateur. Toutefois, lorsque l'application est déployée dans un environnement Linux avec Tomcat et SSL, les fichiers ne sont pas mis en cache. SSL est-il responsable de cela?

+0

Pouvez-vous nous montrer les en-têtes HTTP d'une demande d'une ressource qui ne sont pas mises en cache par un navigateur? –

+0

@LeonidVasilyev J'ai modifié mon message ci-dessus. SSL pourrait-il causer ce problème? –

+0

Les en-têtes de la requête sont les suivants: GET /html/en/default/***.css HTTP/1.1 Hôte: 10.62.137.70 Connexion: keep-alive User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, comme Gecko) Chrome/55.0.2883.87 Safari/537.36 Accepter: text/css, */*; q = 0.1 Référenceur: *** Accept-Encoding: gzip, deflate, sdch, br Accept-Language: fr-FR, fr; q = 0,8 Cookie: _ga = GA1.1.794081272.1485321205; _gat = 1; JSESSIONID = *** –

Répondre

1

Vous devez vous débarrasser de l'erreur de certificat SSL. Chrome ne cache pas les ressources avec de telles erreurs.

Pour plus d'informations, consultez les questions de chrome ci-dessous:

+0

merci pour votre réponse :) J'ai testé mon application sur un autre serveur avec un certificat SSL valide et cela a fonctionné. –