【发布时间】:2012-04-26 12:19:40
【问题描述】:
我有一个包含几百个小图像的 Web 应用程序,并且在加载时性能很差。
为了解决这个问题,我想在浏览器中缓存静态文件。
使用servlet filter on Tomcat 7,我现在在静态文件上正确设置了 expires 标头,并且可以看到它返回给 Chrome:
Accept-Ranges:bytes
Cache-Control:max-age=3600
Content-Length:40284
Content-Type:text/css
Date:Sat, 14 Apr 2012 09:37:04 GMT
ETag:W/"40284-1333964814000"
**Expires:Sat, 14 Apr 2012 10:37:05 GMT**
Last-Modified:Mon, 09 Apr 2012 09:46:54 GMT
Server:Apache-Coyote/1.1
但是,我注意到 Chrome 仍在为每个静态资源在重新加载时往返于服务器,发送一个 if-modified 标头并从 Tomcat 获得正确的 304 Not Modified 响应。
有什么方法可以让 Chrome 在真正过期之前避免向服务器发出这 100 多个请求?
【问题讨论】:
-
这些图像是不断变化还是大部分保持不变?
-
有人问过类似的问题:Chrome - why is it sending if-modified-since requests?。不确定它是否真的得到了回答,但那里有一些想法......
标签: http google-chrome tomcat caching