Tomcat阻止静态资源缓存

时间:2010-09-16 16:56:23

标签: tomcat caching

我已经阅读了几个答案,但没有一个有效。我在我的应用程序的META-INF / context.xml中添加了一个cachingAllowed。

我在server.xml和context.xml中放了cachingAllowed ='false'是徒劳的。我还删除了我的工作/ [app]缓存,这是我在资源回来时看到的。

JSP - 看起来不错!

请求网址:/loadconf.jsp

请求方法:GET

状态代码:200 OK

请求标题

接受: /

的Referer:http://localhost/

User-Agent:Mozilla / 5.0(Windows; U; Windows NT 6.1; en-US)AppleWebKit / 534.3(KHTML,与Gecko一样)Chrome / 6.0.472.59 Safari / 534.3

响应标头

内容类型:应用/ JavaScript的;字符集= UTF-8

日期:2010年9月16日星期四16:52:35 GMT

服务器:Apache-狼/ 1.1

传送编码:分块

JS - 看起来很糟糕

请求网址:yuiloader-dom-event.js

请求方法:GET

状态代码:200 OK

请求标题

接受: /

的Referer:http://localhost/

User-Agent:Mozilla / 5.0(Windows; U; Windows NT 6.1; en-US)AppleWebKit / 534.3(KHTML,与Gecko一样)Chrome / 6.0.472.59 Safari / 534.3

响应标头

接受-范围:字节

缓存控制:max-age = 15552000 错误

的Content-Length:60327

内容类型:文本/ JavaScript的

日期:2010年9月16日星期四16:39:57 GMT

ETag:W /“60327-1273012296000” 错误

到期:星期二,2011年3月15日16:39:57 GMT 糟糕

Last-Modified:Tue,2010年5月4日22:31:36 GMT

服务器:Apache-狼/ 1.1

1 个答案:

答案 0 :(得分:3)

简单方法,使用Apache,类似这样:

# Configure Tomcat proxys
<VirtualHost localhost:80>

  ProxyPass / http://localhost:8080/
  ProxyPassReverse / http://localhost:8080/

  #for files that have no header
  ExpiresDefault now
  ExpiresByType text/javascript now

  #overwrite the headers tomcat is foolishly trying to provide
  Header set Cache-Control "max-age=0, must-revalidate"
  Header set Expires "January 1, 1970" #this should be "now", but it wasn't working for me

</VirtualHost>

我的静态文件现在有200个回复。