Я установил Cache-Control в Apache на 1 неделю для моих JS-файлов, но когда я проверяю в браузере, Cache-Control показывает отсутствие кэша. Где я упускаю конфигурацию?
Ниже представлена моя конфигурация в Apache.
<ifModule mod_headers.c>
<filesMatch "\.(html|htm|png|js|css)$">
Header set Cache-Control "max-age=604800, public"
</filesMatch>
</ifModule>
Заголовок запроса в браузере
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
решение1
Вам необходимо включить модуль заголовков, если это Debian:
sudo a2enmod headers
то для того, чтобы изменения вступили в силу, необходимо перезагрузить или перезапустить Apache:
sudo service apache2 reload
Если это не помогает, есть еще несколько частей вашей конфигурации, которые могут переопределять директиву Cache-Control, например, в файле .htaccess, обслуживаемом из вашего корневого веб-каталога.
Кроме того, я не уверен, допускает ли Apache использование заглавных букв в конфигурации вашего сервера. Возможно, вам следует использовать (обратите внимание на заглавную I), и если apache не распознает вашу заглавную букву, он должен выводить ошибки при перезапуске.
решение2
Cache-Control:no-cache
не появляется отдельно, он создается приложением.
Независимо от того, настроено ли что-либо в Apache или нет, возвращаемые приложением данные переопределяют настройки по умолчанию.
Таким образом, помимо ответа @MartinOlika, приложение придется пересмотреть, или, если хотите, нужную конфигурацию можно выполнить на уровне приложения.