Java 浏览器未缓存资源(标题集)
我的JEE6/JSF/primefaces应用程序可以通过https(双向ssl:需要服务器和用户证书)获得。我希望浏览器缓存资源文件,所以 资源提供了标题:“缓存控制:公共,最大年龄=2592000”和“过期时间:2014年12月19日星期五07:46:27 GMT”(现在+1个月)。但是,最近的FF和IE请求 每个页面上以及每次刷新后的所有js/css/png文件(F5)。下面是我的请求和响应标题。我做错了什么Java 浏览器未缓存资源(标题集),java,http,jsf,caching,header,Java,Http,Jsf,Caching,Header,我的JEE6/JSF/primefaces应用程序可以通过https(双向ssl:需要服务器和用户证书)获得。我希望浏览器缓存资源文件,所以 资源提供了标题:“缓存控制:公共,最大年龄=2592000”和“过期时间:2014年12月19日星期五07:46:27 GMT”(现在+1个月)。但是,最近的FF和IE请求 每个页面上以及每次刷新后的所有js/css/png文件(F5)。下面是我的请求和响应标题。我做错了什么 Request: GET /javax.faces.res
Request: GET /javax.faces.resource/primefaces.css.jsf?ln=primefaces HTTP/1.1
Accept: text/css, */*
Referer: https://xxxxx.yy/zz/abc.jsf?type=1
Accept-Language: en-US
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
Accept-Encoding: gzip, deflate
Host: xxxxx.yy
DNT: 1
Connection: Keep-Alive
Cookie: ServerID=1845; JSESSIONID=Wmsmxxx!-1754822933
Response: HTTP/1.1 200 OK
Date: Wed, 19 Nov 2014 07:37:49 GMT
Server: Apache
Cache-Control: public, max-age=2592000
Pragma: public
Expires: Fri, 19 Dec 2014 07:46:27 GMT
Last-Modified: Tue, 13 Nov 2012 10:02:34 GMT
X-Powered-By: Servlet/3.0 JSP/2.2
X-Powered-By: JSF/2.0
Keep-Alive: timeout=15, max=100
Content-Language: en
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/css
这将取决于您为哪种类型的请求启用了缓存 检查以下两个位置以查看缓存中包含的内容 您的URL模式必须与静态内容的请求相匹配
<filter-mapping>
<filter-name>cache</filter-name>
<url-pattern>*.xhtml</url-pattern>
</filter-mapping>
以下是我完成此操作的详细信息:.
希望这有帮助。在过去的几个小时里,您一直在复制多个问题的答案。请不要那样做。你的每一个答案都应该是所问问题的答案,而不是之前答案的复制和粘贴。
if (uri.contains(".js") || uri.contains(".css") || uri.contains(".svg") || uri.contains(".gif")
|| uri.contains(".woff") || uri.contains(".png")) {
httpResponse.setHeader("Cache-Control", "max-age=" + maxAge);
}