2017-02-01 4 views
0

Ich benutze Apache Tomcat Server und habe eine Webanwendung, die mehrere js, css und Bilddateien rendert. Ich möchte sicherstellen, dass diese Dateien vom Browser zwischengespeichert werden, so dass sie nicht jedes Mal angefordert werden. Ich habe jedoch festgestellt, dass einige Dateien zwischengespeichert werden, während andere nicht. Ich habe herausgefunden, dass der Antwort-Header von der App läuft: "31. Dezember 1969 um 19.00 Uhr". Nachdem ich this durchgegangen bin, habe ich die tomcat Sicherheitsbeschränkung von der web.xml entfernt, die den Header erfolgreich entfernte. Ich habe auch den Expires-Header in meiner App auf 1 Woche von der Gegenwart konfiguriert. Auch das hat nicht dafür gesorgt, dass die Seiten zwischengespeichert werden.Seiten nicht im Browser zwischengespeichert

Danach habe ich den Cache-Control-Header für die Öffentlichkeit mit Max-Age auf 1 Woche konfiguriert. Keine dieser Änderungen hilft mir. Außerdem bekommen die Seiten zwischengespeichert und nicht zwischengespeichert immer die gleichen Header haben, wie unten:

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 

Abgesehen davon habe ich auch versucht, die ExpiresFilter wie here ohne Erfolg.

BEARBEITEN: Meine Anwendung, wenn sie in einer Windows-Umgebung mit Tomcat und ohne SSL bereitgestellt wird, speichert erfolgreich alle Dateien im Browser.

Wenn die App jedoch in einer Linux-Umgebung mit Tomcat bereitgestellt wird und SSL keine Dateien zwischenspeichert. Verursacht SSL dies?

+0

Können Sie uns zeigen, HTTP-Header einer Anforderung einer Ressource, die nicht von einem Browser im Cache gespeichert wird? –

+0

@LeonidVasilyev Ich habe meinen Beitrag oben bearbeitet. Kann SSL dieses Problem verursachen? –

+0

Die Anforderungsheader lauten wie folgt: GET /html/en/default/***.css HTTP/1.1 Host: 10.62.137.70 Verbindung: keep-alive Benutzer-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, wie Gecko) Chrome/55.0.2883.87 Safari/537.36 Akzeptieren: text/css, */*; q = 0.1 Referer: *** Accept-Encoding: gzip, deflate, sdch, br Accept-Language: de-DE, en; q = 0.8 Cookie: _ga = GA1.1.794081272.1485321205; _gat = 1; JSESSIONID = *** –

Antwort

1

Sie müssen SSL-Zertifikatfehler loswerden. In Chrome werden Ressourcen mit solchen Fehlern nicht zwischengespeichert.

Weitere Informationen erhalten Sie Chromium Fragen unter:

+0

danke für deine Antwort :) Ich habe meine App auf einem anderen Server mit gültigem SSL-Zertifikat getestet und es hat funktioniert. –

Verwandte Themen