【发布时间】:2014-12-03 02:45:17
【问题描述】:
如何在spring web application中设置js、css、图片文件过期。我试过<mvc:resources mapping="/resources/**" location="/resources/" cache-period="31556926"/>
但它仍然从浏览器发送请求并且服务器响应304 意味着如果我没记错的话它不使用浏览器缓存。最后它也会向服务器发送一个 HTTP 请求,所以我认为这没有任何用处。
我错过了什么还是有其他的?响应头
Cache-Control:max-age=31556926, must-revalidate
Date:Wed, 03 Dec 2014 03:17:24 GMT
Expires:Thu, 03 Dec 2015 09:06:11 GMT
Pragma:no-cache
Server:Apache-Coyote/1.1
X-XSS-Protection:1; mode=block
【问题讨论】:
-
您是否检查了响应标头以确保它们设置正确?
-
编译指示显然对任何支持它的浏览器都没有帮助(并表明其他东西正在修改你的标题)。我会考虑使用适当的拦截器直接在 Spring 中控制标头:stackoverflow.com/questions/1362930/…
-
我认为这与在
mvc:resources中设置cache-period相同 -
似乎您的标头正在配置中的其他地方被修改,并且正在添加
Pragma标头。该标头通常由禁用缓存的拦截器添加,并且一旦添加就无法完全删除。预期的标准行为没有考虑任何其他正在修改响应的内容。 -
还有“我错过了什么或者还有其他的吗?”我猜这应该是“方式”?如果是,那么您似乎不太愿意接受其他选择。
标签: spring spring-mvc