Configuré Cache-Control en Apache durante 1 semana para mis archivos JS, pero cuando reviso en el navegador, Cache-Control muestra que no hay caché. ¿Dónde me falta la configuración?
A continuación se muestra mi configuración en Apache.
<ifModule mod_headers.c>
<filesMatch "\.(html|htm|png|js|css)$">
Header set Cache-Control "max-age=604800, public"
</filesMatch>
</ifModule>
Solicitar encabezado en el navegador
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
Respuesta1
Debe habilitar el módulo de encabezados, asumiendo Debian:
sudo a2enmod headers
Luego, para que los cambios surtan efecto, debes recargar o reiniciar Apache:
sudo service apache2 reload
Si esto no tiene efecto, también hay otras partes de su configuración que pueden anular la directiva Cache-Control, por ejemplo en un .htaccess servido desde su raíz web.
Además, no estoy seguro de si Apache permite el uso de mayúsculas en la configuración de su servidor. Posiblemente debas usar (fíjate en la I mayúscula) y si Apache no reconoce tu mayúscula, debería imprimir errores al reiniciar.
Respuesta2
Cache-Control:no-cache
no aparece solo, está siendo producido por la aplicación.
Ya sea que algo esté configurado en Apache o no, lo que sea que devuelva la aplicación anulará los valores predeterminados.
Entonces la respuesta de @MartinOlika además, habrá que revisar la aplicación, o si se desea se puede hacer la configuración deseada a nivel de aplicación.