这里说一下 spring boot 静态资源的存放。
环境
- spring boot
- 2.7.5
自动配置
里面有一句
1 | org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration |
进入后,有一个方法
1 | public void addResourceHandlers(ResourceHandlerRegistry registry) { |
第 2 行判断是否自己自定义了静态文件路径。
1 | this.addResourceHandler(registry, "/webjars/**", "classpath:/META-INF/resources/webjars/"); |
这个是使用 webjar 的方式导入,使用场景非常少,这里不再解释。
1 | this.addResourceHandler(registry, this.mvcProperties.getStaticPathPattern(), (registration |
其中 this.resourceProperties.getStaticLocations()
表示 new String[]{"classpath:/META-INF/resources/", "classpath:/resources/", "classpath:/static/", "classpath:/public/"};
我们一般使用
- classpath:/resources/
- classpath:/static/
- classpath:/public/
其中优先级
resources > static > public