静态资源映射配置
SpringMVC默认拦截所有请求,需配置静态资源映射才能访问CSS、JS、图片等静态文件。
XML配置方式
方式一:default-servlet-handler
XML
<mvc:default-servlet-handler/>
由Tomcat默认Servlet处理静态资源,最简单配置。
方式二:resources标签
XML
<mvc:resources mapping="/static/**" location="/static/"/>
<mvc:resources mapping="/css/**" location="/css/"/>
<mvc:resources mapping="/js/**" location="/js/"/>
<mvc:resources mapping="/images/**" location="/images/"/>
| 属性 | 说明 |
|---|---|
| mapping | URL匹配模式 |
| location | 资源物理路径 |
注解配置方式
Java
@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/static/**")
.addResourceLocations("/static/");
registry.addResourceHandler("/css/**")
.addResourceLocations("/css/");
registry.addResourceHandler("/js/**")
.addResourceLocations("/js/");
registry.addResourceHandler("/images/**")
.addResourceLocations("/images/");
}
}
WebJars支持
WebJars将前端库打包为Jar,统一管理:
XML
<dependency>
<groupId>org.webjars</groupId>
<artifactId>jquery</artifactId>
<version>3.6.0</version>
</dependency>
自动配置:
Java
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
访问:/webjars/jquery/3.6.0/jquery.min.js
目录结构示例
text
webapp/
├── static/
│ ├── css/
│ │ └── style.css
│ ├── js/
│ │ └── app.js
│ └── images/
│ └── logo.png
└── WEB-INF/
└── pages/
└── index.jsp
静态资源路径不要放在WEB-INF目录下,WEB-INF目录对外不可访问。
要点总结
- mvc:default-servlet-handler:最简单配置
- mvc:resources:精确控制静态资源路径
- addResourceHandlers:注解方式配置
- mapping配置URL匹配,location配置物理路径
📝 发现内容有误?点击此处直接编辑