2017-02-01 78 views
0

我使用apache tomcat服务器,并有一个web应用程序呈现几个js,css和图像文件。我想确保这些文件被浏览器缓存,以便每次都不要求它们。但是,我注意到有些文件正在缓存,而其他文件却没有。我发现应用程序的响应标题已过期:“1969年12月31日下午7:00”。在通过this之后,我从web.xml中删除了成功标题的tomcat安全约束。我还在我的应用中将Expires标头配置为距现在1周。这也不能确保页面被缓存。页面没有被缓存在浏览器中

在此之后,我将Cache-Control标头配置为public,max-age设置为1周。这些变化都没有帮助我。此外,页面缓存得到和没有得到缓存有下同标题:

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 

除了这个我也试过ExpiresFilter描述here没有任何的运气。

编辑:我的应用程序,当部署在与Tomcat和没有SSL的Windows环境中,成功缓存浏览器中的所有文件。

但是,当应用程序部署在使用Tomcat的Linux环境中并且SSL不缓存文件时。 SSL是否造成这种情况?

+0

你能告诉我们HTTP不是由浏览器缓存的资源的请求的头? –

+0

@LeonidVasilyev我上面编辑了我的帖子。 SSL可能导致此问题? –

+0

请求标题如下: GET /html/en/default/***.css HTTP/1.1 主机:10.62.137.70 连接:保持活动 用户代理程序:Mozilla/5.0(Windows NT 6.1; WOW64)AppleWebKit/537.36(KHTML,如Gecko)Chrome/55.0.2883.87 Safari/537.36 接受:text/css,*/*; q = 0.1 Referer:*** 接受编码:gzip,deflate,sdch, br Accept-Language:en-US,en; q = 0.8 Cookie:_ga = GA1.1.794081272.1485321205; _gat = 1; JSESSIONID = *** –

回答

相关问题