指定静态资源路径
当SpringMVC的DispatcherServlet配置的映射路径是/
时,所有的请求都将被SpringMVC拦截,如果我们想访问某个路径下的静态资源其实是不能直接访问的。基于这种情况,SpringMVC提供了<mvc:resources/>
配置来告诉SpringMVC,哪些请求是针对静态资源的。它需要指定两个参数,location用来指定静态资源对应的实际路径,可以通过classpath:META-INF/static/这种方式指定类路径下的资源,如果有多个路径,可以通过英文逗号分隔。mapping用来指定哪些请求会被认为是在请求静态资源。下面的配置就指定了格式满足/static/**
的请求路径被认为是在请求静态资源,会相应的到/static/
路径下寻找对应文件。所以当请求路径是/static/css/default.css
时会响应/static/css
目录下的default.css
文件。
<mvc:resources location="/static/" mapping="/static/**" />
实际上当SpringMVC的DispatcherServlet配置的映射路径是
/
时,所有的请求都将被SpringMVC拦截。如果配置了<mvc:default-servlet-handler/>
,则当一个请求路径SpringMVC找不到处理器时将会把它交给容器本身处理,也就说这种情况下是可以正常访问静态资源的。
静态资源缓存
<mvc:resources/>
还可以通过cache-period
属性指定静态资源的缓存时间,单位是秒。这样浏览器在指定的cache-period时间内需要访问静态资源时会优先使用浏览器本地缓存的内容。
有的时候我们希望能强制更新浏览器缓存的内容,这个时候我们可以给静态资源加入一个版本的概念。大概意思是在URL中加入一个版本,每次有更新的时候都更新版本号,这样每次更新后请求的静态资源路径都不一样,浏览器也就会重新从服务端获取静态资源进行缓存了。SpringMVC对此也提供了支持,我们可以通过<mvc:fixed-version-strategy/>
来定义一个固定的版本号,这样我们的请求路径需要重写为加上版本号,比如按照之前静态资源的配置,原本请求路径是/static/css/common.css
,加上版本号之后就是/static/1.0/css/common.css
,因为我们配置的请求路径映射是/static/**
,即只需要在**
前加上版本号作为一级目录。SpringMVC接收到请求/static/1.0/css/common.css
会自动提取出版本号1.0,并把请求版本号与当前版本号比较,能匹配则响应去掉版本号的内容,否则就是404了。
<mvc:resources location="/static/" mapping="/static/**" cache-period="600">
<!-- 指定静态资源缓存,有版本更新时通过版本号来更新 -->
<mvc:resource-chain resource-cache="true">
<mvc:resolvers>
<mvc:version-resolver>
<mvc:fixed-version-strategy version="1.0" patterns="/**" />
</mvc:version-resolver>
</mvc:resolvers>
</mvc:resource-chain>
</mvc:resources>
(注:本文是基于Spring4.1.0所写)
相关推荐
SpringMVC访问静态资源SpringMVC访问静态资源SpringMVC访问静态资源
本篇文章主要介绍了防止SpringMVC拦截器拦截js等静态资源文件的解决方法,具有一定的参考价值,有兴趣的同学可以了解一下
该txt文档主要讲了在利用springmvc框架来搭建项目时有什么方法可以访问静态资源。
在springmvc中什么时候使用静态资源访问,
springmvc对静态资源处理。springmvc对静态资源处理。springmvc对静态资源处理。springmvc对静态资源处理。
主要介绍了详解SpringMVC中设置静态资源不被拦截的问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
springMVC静态资源
本篇文章主要介绍了SpringMVC访问静态资源的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Spring Framework 4.1 mvc添加了静态资源增强处理功能.本源码仅是一个简单使用例子.详细参考;http://blog.csdn.net/xiejx618/article/details/40478275
本篇文章主要介绍了SpringMVC 拦截器不拦截静态资源的三种处理方式方法,详细的介绍了三种方法,有兴趣的可以了解一下。
SSM笔记-SpringMVC的CRUD和配置请求映射后使用静态资源的解决方法
主要介绍了SpringMVC访问静态资源的三种方式小结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
主要介绍了SpringMvc静态资源访问实现方法代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
springmvc是常用的一种框架,学习springmvc非常重要,故需要良好教程资料
springmvc的rest风格的增删改查,适合springmvc的新手
SpringMVC修改配置文件路径 给页面端传递数据(String类型、Map类型)
springmvc 笔记
传智 springmvc mybatis 燕青 笔记 教案 springmvc部分
java SpringMVC获取URLjava SpringMVC获取URLjava SpringMVC获取URLjava SpringMVC获取URL
springmvc基础 包含代码+知识点+详细解释 1. 什么是springmvc? 2. springmvc框架原理 前端控制器、处理器映射器、处理器适配器、视图解析器 3. springmvc入门程序 目的:对前端控制器、处理器映射器、处理器...