SpringMVC 的使用映射路径 <mvc:resources >

以下是测试结果,可能存在纰漏,暂记录一下。

使用springMVC时,一般将DispatcherServlet请求映射配置为"/",则Spring MVC将捕获Web容器所有的请求,包括静态资源的请求,Spring MVC会将它们当成一个普通请求处理,因此找不到对应处理器将导致错误。

静态文件如  .js、.css、图片等文件也会被拦截,所以需要在springMVC.xml 文件里配置映射路径,

例如: 

<mvc:resources location="/static/css/" mapping="/css/**"></mvc:resources>

需要注意的是,之后引用 css 文件时,正确的写法如下:

<link rel="stylesheet" href="/项目名/css/xxxxx.css" type="text/css"  />

错误的写法如下:

<link rel="stylesheet" href="/css/xxxxx.css" type="text/css"  />   错误原因是  映射路径是从项目内部开始的,也就是说  项目名 没有办法忽略掉,当然如果项目名为空,那么这么写是可以的

<link rel="stylesheet" href="css/xxxxx.css" type="text/css"  />    如果项目名为空,这样写仍然是错误的, 少了一个  "/"。 以"/"开头时,是指从项目根路径开始,没有"/"开头的话,是相对路径,从当前页面开始。

 

另外,springMVC.xml 文件里配置映射路径,无法替代 项目名,就是说 location 里包含 项目名  是没有用的。如下写法是错误的。换句话说,前端文件里引用静态文件,项目名无法省略。

<mvc:resources location="/项目名/static/css/" mapping="/css/**"></mvc:resources>

 

另外参考:注意事项 Spring MVC静态资源处理:<mvc:resources />

posted @ 2018-11-29 21:37  mumu122  阅读(4396)  评论(0编辑  收藏  举报