1、为什么SpringMVC无法直接引用静态资源?
如图所示,在web.xml文件中,URL模式设置为 "/" ,说明这所有请求都被映射到dispatcher servlet,故无法处理静态资源。
2.解决办法
主要有两种解决方法:
- 在处理静态资源时,需要在dispatcher-servlet.xml配置文件中添加<resources/>元素,比如如下处理css资源:
<mvc:resources mapping="/css/**" location="/css/"/>
mapping:映射
location:本地资源路径,注意必须是webapp根目录下的路径。
两个*,它表示映射resources/下所有的URL,包括子路径(即接多个/)
注意:一定要在配置文件中添加如下元素:
<mvc:annotation-driven/>
<annotation-driven>元素所做的事情包括注册用于支持基于注解的控制器的请求处理方法的bean对象,如果没有 <annotation-driven>,<resources/>元素会阻止任意控制器被调用。
其次,css、js文件最好不要在WEB-INF文件下,不然可能会无法访问到,造成静态资源依然无法加载。
2.使用<mvc:default-servlet-handler/>