当你使用SpringMVC来做web开发时,经常会遇到如何配置静态资源加载的问题。
问题产生的根源,看如下web.xml中的配置:
<servlet> <servlet-name>springServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring-mvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
上面的Servlet配置会拦截你所有的请求,包括静态的资源*.css, *.html, *.htm, *.jpg, *.js, *.png ... 等等。
其实这些静态资源被拦截是没有意义的,那么如何避免这些不希望被拦截的资源被拦截呢?
主要有两种方式:
1、如果你的静态资源打包之后再项目的根目录下---注意这里一定是根目录,在WEB-INF目录下是不行的,即在你的项目的Webapp 目录下,那么可以采用配置:
<mvc:default-servlet-handler/>
的方式到你的 spring-servlet.xml 中。
然后在你的web.xml 加入如下配置:
<servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.css</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.js</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.ico</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.gif</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.jpg</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.png</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.bmp</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.jpeg</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.swf</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.flv</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.xml</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.txt</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.htm</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.html</url-pattern> </servlet-mapping>
然后当你在访问静态资源是就不会被spring Servlet拦截了。
2. 采用 配置 如下代码到你的spring-servlet.xml 文件中的方式:
<mvc:resources mapping="/html/**" location="/WEB-INF/views/mqcloud/monitor/"/>
注意,这种方式可以指定你的静态资源在你项目中的任何位置,包括在jar 里面,因为 配置中的 location 可以配置成 classpath:/com/ctx/.... 的形式。
并且该方式不会像 第一中方式那样 要求静态资源文件放置到应用的根目录下面的。
注意:当两种方式在你的项目里面都配置了,那么会出现访问静态资源失败的问题,因此最好不要在项目里面同时配置这两种方式。
相关推荐
尚硅谷_SpringBoot_web开发-webjars&静态资源映射规则 尚硅谷_SpringBoot_web开发-引入thymeleaf 尚硅谷_SpringBoot_web开发-thymeleaf语法 尚硅谷_SpringBoot_web开发-SpringMVC自动配置原理 尚硅谷_SpringBoot_web...
尚硅谷_SpringBoot_web开发-webjars&静态资源映射规则 尚硅谷_SpringBoot_web开发-引入thymeleaf 尚硅谷_SpringBoot_web开发-thymeleaf语法 尚硅谷_SpringBoot_web开发-SpringMVC自动配置原理 尚硅谷_SpringBoot_web...
4.2 静态资源映射规则 56 4.3 引入Thymeleaf 60 4.4 Thymeleaf语法 61 4.5 SpringMVC自动配置原理 67 4.6 SpringBoot扩展与全面接管 70 4.7 如何修改SpringBoot的默认配置 72 4.8 【实验】CRUD操作 73 4.8.1 默认...
27、尚硅谷_SpringBoot_日志-切换日志框架 28、尚硅谷_SpringBoot_web开发-简介 29、尚硅谷_SpringBoot_web开发-webjars&静态资源映射规则 30、尚硅谷_SpringBoot_web开发-引入thymeleaf 31、尚硅谷_SpringBoot_web...
5.Web开发(静态资源映射、模板引擎Thymeleaf、热部署devtools) 6.扩展SpringMVC功能、全局异常处理 7.注册Servlet组件、配置外部的Servlet容器 8.SpringBoot数据访问(JDBC、MyBatis、Mybatis-Plus) 9.SpringBoot...
29、尚硅谷_SpringBoot_web开发-webjars&静态资源映射规则 30、尚硅谷_SpringBoot_web开发-引入thymeleaf 31、尚硅谷_SpringBoot_web开发-thymeleaf语法 32、尚硅谷_SpringBoot_web开发-SpringMVC自动配置原理 ...
29、_SpringBoot_web开发-webjars&静态资源映射规则 30、_SpringBoot_web开发-引入thymeleaf 5 g- Q" y) P7 Q7 O 31、_SpringBoot_web开发-thymeleaf语法 . V# ?; k. ^2 F0 Y! L9 a4 r: w% t; r 32、_SpringBoot_...
3.数据库ORM持久化框架使用Hibernate 5.4,通过加载不同的驱动程序支持MySQL、Oracle、Microsoft SQL Server等数据库。 4.具有云端软件版本更新提示服务器。 5.具有能提供一键式打包、解包、上传、下载、无配置式...
2.采用了安全、稳定的基于Java的SpringMVC框架。3.数据库ORM持久化框架使用Hibernate 5.4,通过加载不同的驱动程序支持MySQL、Oracle、Microsoft SQL Server等数据库。4.具有云端软件版本更新提示服务器。5.具有能...
Spring+SpringMVC+Mybatis框架集成公共模块,包括公共配置、MybatisGenerator扩展插件、通用BaseService、工具类等。 > zheng-admin 基于bootstrap实现的响应式Material Design风格的通用后台管理系统,`zheng`...
3.数据库ORM持久化框架使用Hibernate 5.4,通过加载不同的驱动程序支持MySQL、Oracle、Microsoft SQL Server等数据库。4.具有云端软件版本更新提示服务器。5.具有能提供一键式打包、解包、上传、下载、无配置式布署...
项目环境搭建细节-spring-springmvc相关配置-创建包结构% y& q( J; t$ J; t' ^5 t │ 16.项目环境搭建-跑通整个流程4 n. \. k! \1 r. s │ , b2 `. m2 c0 O5 H; Z1 z/ D ├─众筹项目-第02天《Atcrowdfunding》 │ ...