提出问题
如下图,创建 css、js、images 目录,并放入静态资源文件
启动服务,访问这些静态资源,
如:http://localhost:8080/std_springmvc/js/jquery-1.11.0.min.js,
报 404 错误
分析问题
因为所有的请求都经过 org.springframework.web.servlet.DispatcherServlet ,访问静态资源也不例外,所以 报 404 错误
解决问题(推荐)
修改 springMVC.xml,增加下面注解即可:
<mvc:default-servlet-handler/>
解决问题(传统方式)
设置 DispatcherServlet 静态资源映射(js、css、图片)
修改 springMVC.xml
添加代码如下:
<!-- 配置静态资源映射后,不加此配置,Controller将无法访问 -->
<mvc:annotation-driven />
<mvc:resources mapping="/css/**" location="/css/" />
<mvc:resources mapping="/img/**" location="/img/" />
<mvc:resources mapping="/js/**" location="/js/" />
说明:
必须加
<mvc:annotation-driven />配置,否则 Controller 将无法访问mapping="/css/**":配置 url 访问的静态资源。/css/**表示 url/css/下的静态资源,及 子目录 的静态资源,均可以访问。
如:url 是/css/style.css、/css/abc/style.css均可以访问location="/css/":映射本地的资源路径
如下图:
测试
重启服务器
访问 http://localhost:8080/std_springmvc/js/jquery-1.11.0.min.js,可正常访问静态资源
springmvc静态资源映射 /** 和 /* 区别
映射多个本地路径
修改 springMVC.xml
如下:
<mvc:resources mapping="/images/**" location="/images/,/img/" />
映射 本地路径 /webapp/images/,/webapp/img/
资源如下图
本地路径 /webapp/images/ 有 1.png,/webapp/img/ 有 2.png
重新启动服务
测试1
访问 http://localhost:8080/std_springmvc/images/1.png
显示 /webapp/images/1.png 图片
映射过程如下图:
测试2
访问 http://localhost:8080/std_springmvc/images/2.png
显示 /webapp/img/2.png 图片
映射过程如下图:




