`
cuitongxin
  • 浏览: 26440 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

SpringMVC 静态资源访问加载配置

 
阅读更多

当你使用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学习视频

    尚硅谷_SpringBoot_web开发-webjars&静态资源映射规则 尚硅谷_SpringBoot_web开发-引入thymeleaf 尚硅谷_SpringBoot_web开发-thymeleaf语法 尚硅谷_SpringBoot_web开发-SpringMVC自动配置原理 尚硅谷_SpringBoot_web...

    尚硅谷springboot视频(上)

    尚硅谷_SpringBoot_web开发-webjars&静态资源映射规则 尚硅谷_SpringBoot_web开发-引入thymeleaf 尚硅谷_SpringBoot_web开发-thymeleaf语法 尚硅谷_SpringBoot_web开发-SpringMVC自动配置原理 尚硅谷_SpringBoot_web...

    springboot知识点整理

    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 默认...

    尚硅谷Spring boot核心技术篇(上)

    27、尚硅谷_SpringBoot_日志-切换日志框架 28、尚硅谷_SpringBoot_web开发-简介 29、尚硅谷_SpringBoot_web开发-webjars&静态资源映射规则 30、尚硅谷_SpringBoot_web开发-引入thymeleaf 31、尚硅谷_SpringBoot_web...

    SpringBoot2.0实战教程

    5.Web开发(静态资源映射、模板引擎Thymeleaf、热部署devtools) 6.扩展SpringMVC功能、全局异常处理 7.注册Servlet组件、配置外部的Servlet容器 8.SpringBoot数据访问(JDBC、MyBatis、Mybatis-Plus) 9.SpringBoot...

    128元尚硅谷Java视频教程_SpringBoot视频教程(上)核心技术篇

    29、尚硅谷_SpringBoot_web开发-webjars&静态资源映射规则 30、尚硅谷_SpringBoot_web开发-引入thymeleaf 31、尚硅谷_SpringBoot_web开发-thymeleaf语法 32、尚硅谷_SpringBoot_web开发-SpringMVC自动配置原理 ...

    Java SpringBoot课件+源码视频教程

    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_...

    Lerx开源 网站内容管理系统(CMS) v6.6.5

    3.数据库ORM持久化框架使用Hibernate 5.4,通过加载不同的驱动程序支持MySQL、Oracle、Microsoft SQL Server等数据库。 4.具有云端软件版本更新提示服务器。 5.具有能提供一键式打包、解包、上传、下载、无配置式...

    Lerx 开源网站内容管理系统(CMS) v6.0

    2.采用了安全、稳定的基于Java的SpringMVC框架。3.数据库ORM持久化框架使用Hibernate 5.4,通过加载不同的驱动程序支持MySQL、Oracle、Microsoft SQL Server等数据库。4.具有云端软件版本更新提示服务器。5.具有能...

    单点登录源码

    Spring+SpringMVC+Mybatis框架集成公共模块,包括公共配置、MybatisGenerator扩展插件、通用BaseService、工具类等。 &gt; zheng-admin 基于bootstrap实现的响应式Material Design风格的通用后台管理系统,`zheng`...

    Lerx开源网站内容管理系统(CMS.ext)-其他

    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》 │ ...

Global site tag (gtag.js) - Google Analytics