本章节讲解Spring Boot 中的2 种静态资源映射规则
- WebJars 映射
- 默认资源映射
1、WebJars 映射
JS、CSS打入jar包,所有通过 WebJars 引入的前端资源都存放在当前项目类路径(classpath)下的“/META-INF/resources/webjars/” 目录中
1.1、pom.xml文件加入资源文件
<dependency> <groupId>org.webjars</groupId> <artifactId>jquery</artifactId> <version>3.6.1</version> </dependency>
1.2、Spring Boot 工程里做映射
Spring Boot 通过 MVC 的自动配置类 WebMvcAutoConfiguration 为这些 WebJars 前端资源提供了默认映射规则。
http://localhost:8080/webjars/jquery/3.6.1/jquery.js
@Configuration @EnableWebMvc public class WebConfig extends WebMvcConfigurerAdapter { @Override public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { configurer.enable(); } @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/webjars/**").addResourceLocations("/webjars/") .resourceChain(false) .addResolver(new WebJarsResourceResolver()) .addResolver(new PathResourceResolver()); } }
2、默认资源映射
当访问项目中的任意资源(即“/**”)时,Spring Boot 会默认从以下路径中查找资源文件(优先级依次降低):
- classpath:/META-INF/resources/
- classpath:/resources/
- classpath:/static/
- classpath:/public/
import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; @Configuration public class WebMvcConfig extends WebMvcConfigurationSupport { @Override protected void addResourceHandlers(ResourceHandlerRegistry registry) { //加载public文件夹数据 registry.addResourceHandler("/public/**") .addResourceLocations("classpath:/public/"); //加载static文件夹数据 registry.addResourceHandler("/static/**") .addResourceLocations("classpath:/static/"); } }
查看资源方法
http://localhost:8080/static/js/jquery/3.6.1/jquery.js
http://localhost:8080/static/img/log.png