1、在配置 Spring 的時候,我們配置的攔截是"/",即任何文件都會經 Spring 攔截處理。
2、實際上靜態資源,如 css、js、圖片的引用是不需要 Spring 處理的。
Spring 3.0.4 之後引入了 mvc:resoures 配置,可以聲明哪些資源不需要 Spring 來處理。
1、在 spring 配置文件(spring-servlet,xml)的頂部 xmlns 加上 schema 描述
xmlns:mvc="http://www.springframework.org/schema/mvc"
2、在 xsi:schemaLocation 中加上
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd
最後得到
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:context="http://www.springframework.org/schema/context" 4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 5 xmlns:mvc="http://www.springframework.org/schema/mvc" 6 xsi:schemaLocation="http://www.springframework.org/schema/beans 7 http://www.springframework.org/schema/beans/spring-beans-4.1.xsd 8 http://www.springframework.org/schema/context 9 http://www.springframework.org/schema/context/spring-context-4.1.xsd 10 http://www.springframework.org/schema/mvc 11 http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd">
3、在配置文件中,加入以下配置
1 <!-- 配置 springMVC 不攔截的靜態資源 --> 2 <!-- 必須加,否則 RequestMapping 失效 --> 3 <mvc:annotation-driven/> 4 <!-- css 下所有文件都映射到 /bootstrap/css/ (*: 只處理文件夾下一級; **: 文件夾下多級) --> 5 <mvc:resources mapping="/css/**" location="/bootstrap-3.3.5-dist/css/"/> 6 <mvc:resources mapping="/js/**" location="/bootstrap-3.3.5-dist/js/"/> 7 <!-- 表示上述配置的 css 文件不屬 viewResolver 解析 --> 8 <mvc:default-servlet-handler/>
方法一、根據項目名采用硬編碼引用
href="/MyWeb/css/bootstrap.min.css"
方法二、避免硬編碼引用
href="<c:url value="/css/bootstrap.min.css" />"