最在用spring-mvc配置静态文件的时候有时会出现访问不到对应的静态文件,由于我是用在spring-mvc.xml里面配置<mvc:resources mapping="" location=""/>
的方式来实现静态文件访问的,所以就查了一些资料来搞懂对应的参数什么意思
-
mvc:resource用于配置静态资源的访问路径,静态资源不包括jsp;
-
location元素:表示webapp目录下(即服务器根目录)的resource包下的所有文件;这个地方注意看你的文件路径对不对,必要的时候不能只看eclipse左边的文件结构,还要直接去tomcat目录看看结构对不对,有一次我的目录结构看起来是下面这样的
然后我把upload文件夹配到静态访问里面是这样写的
<mvc:resources mapping="/upload/**" location="/WEB-INF/upload/"/>
看上去没有问题,但我死活无法访问这个目录,除非把配置改成
<mvc:resources mapping="/upload/**" location="/upload/"/>
,然后就去看了一下Tomcat真正部署的目录结构,结果是这样的
居然在WEB-INF文件夹的外面。。。。。。顿时觉得无语,然后调过来就好了 -
mapping元素:表示以/resource开头的所有文件请求路径,如/resource/,说白了就是你显示用URL来调用的时候要怎么写拦截器才不会拦截你,并交给Servlet来操作;