Ich habe Cache-Control in Apache für eine Woche für meine JS-Dateien eingestellt, aber wenn ich im Browser nachschaue, zeigt Cache-Control keinen Cache an. Wo fehlt mir die Konfiguration?
Unten ist meine Konfiguration in Apache
<ifModule mod_headers.c>
<filesMatch "\.(html|htm|png|js|css)$">
Header set Cache-Control "max-age=604800, public"
</filesMatch>
</ifModule>
Anforderungsheader im Browser
Request URL:http://test.com/Script.js?buildInfo=1.1.200
Request Method:GET
Status Code:200 OK
Request Headersview source
Accept:*/*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
**Cache-Control:no-cache**
Connection:keep-alive
Host:test.com
Pragma:no-cache
Referer:http://test.com/home.jsp
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like
Gecko) Chrome/37.0.2062.120 Safari/537.36
Query String Parametersview sourceview URL encoded
buildInfo:1.1.200
Response Headersview source
Cache-Control:max-age=2592000
Connection:keep-alive
Content-Encoding:gzip
Content-Type:text/javascript
Date:Sun, 12 Oct 2014 16:17:46 GMT
Expires:Tue, 11 Nov 2014 16:17:46 GMT
Last-Modified:Tue, 07 Oct 2014 13:28:08 GMT
Server:Apache
Transfer-Encoding:chunked
Vary:Accept-Encoding
Antwort1
Sie müssen das Header-Modul aktivieren, vorausgesetzt, Debian:
sudo a2enmod headers
Damit die Änderungen wirksam werden, müssen Sie Apache neu laden oder neu starten:
sudo service apache2 reload
Wenn dies keine Wirkung hat, gibt es auch mehrere andere Teile Ihrer Konfiguration, die die Cache-Control-Direktive außer Kraft setzen können, beispielsweise in einer .htaccess, die von Ihrem Web-Stammverzeichnis bereitgestellt wird.
Außerdem bin ich mir nicht sicher, ob Apache in Ihrer Serverkonfiguration Großschreibung zulässt. Möglicherweise müssen Sie (beachten Sie das große I) verwenden, und wenn Apache Ihre Großschreibung nicht erkennt, sollte es beim Neustart Fehlermeldungen ausgeben.
Antwort2
Cache-Control:no-cache
erscheint nicht allein, sondern wird von der Anwendung erzeugt.
Unabhängig davon, ob etwas in Apache konfiguriert ist oder nicht, werden die Standardeinstellungen durch die von der Anwendung zurückgegebenen Werte überschrieben.
Daher muss neben der Antwort von @MartinOlika die Anwendung überprüft werden, oder, falls gewünscht, kann die gewünschte Konfiguration auf Anwendungsebene vorgenommen werden.