springmvc教程-访问静态资源:<mvc:annotation-driven />(html、js、css、图片)

提出问题

如下图,创建 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 图片

映射过程如下图:


原文出处:/show_1IX5ScTcIbK.html