springboot设置加载静态资源的路径(spring.resources.static-locations)
springboot设置加载静态资源的路径
默认Springboot将从如下位置按如下优先级(从高到低)加载jar包对应前端静态资源:
- 1.jar包同级static目录
- 2.jar包同级public目录
- 3.jar包同级resource目录
- 4.jar包/META-INF/resources
在调试模式下,Springboot将从class目录中按如下优先级(从高到低)加载对应前端静态资源
- 1.class目录下static目录
- 2.class目录下public目录
- 3.class目录下resource目录
- 4.class目录下/META-INF/resources
通过设置spring.resources.static-locations自定义Spring boot加载前端静态资源路径
spring.resources.static-locations: file:D:/public/
亦可以指定先后顺序:
spring.resources.static-locations=classpath:/static,classpath:/public,classpath:/resources,classpath:/META-INF/resource
如果指定了拦截器,该属性有可能失效
需要在拦截器ResourceHandlerRegistry中通过addLocations()指定对应路径。
如果指定@EnableWebMvc注解也会导致spring.resources.static-locations失效。
如果使用@EnableWebMvc,会自动覆盖原有静态文件目录为src/main/webapp,如果要指定原静态文件目录,需重写addResourceHandlers方法
springboot静态资源管理
说明
在默认情况下,Spring Boot 将通过类加载路径下的/static/(或/public/、/META-INF/resources/、/resources/)目录或应用的根路径来提供静态资源,因此,对于大部分应用而言,开发者只要将JS脚本、CSS样式单、图片等静态资源统一放在类加载路径下的/static/或/public/、/META-INF/resources/、/resources/即可。
关注点
1.自动配置类WebMvcProperties,使用application.yml可以配置静态资源访问路径
spring.mvc.static-path-pattern默认值为/,可以修改为自己指定的访问路径比如:/cs/,则访问静态资源路径必须带/cs/
2.自动配置类WebProperties,使用application.yml可以配置静态资源位置路径
spring.web.resources.static-locations默认值为
{ “classpath:/META-INF/resources/”,“classpath:/resources/”, “classpath:/static/”, “classpath:/public/” }(路径优先级从高到底),
则资源位置路径可以自己定义,例如:classpath:/csResources/,则src/main/resources/目录下建csResources文件夹存储静态资源
3.可以实现WebMvcConfigurer接口并重写该类的addResourceHandlers方法来实现,例如:
@Configuration //public class WebMvcConfiger extends WebMvcConfigurerAdapter { public class WebMvcConfiger implements WebMvcConfigurer { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/dist/**").addResourceLocations("classpath:/static/dist/"); registry.addResourceHandler("/theme/**").addResourceLocations("classpath:/static/theme/"); } }
4.Spring Boot 也支持加载WebJar包中的静态资源,WebJar包中的静态资源都会被映射到/webjar/**路径下。
比如在应用的某个JAR包中包含js/abc.js,那么它实际的映射地址就是/webjars/js/abc.js(WebJar是一种将前端资源(如JS库、CSS样式单、图片等)打包到JAR中,然后使用基于JVM的包管理器来管理前端依赖的方案)。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
后端报TypeError:Cannot read properties of null (reading ‘
这篇文章主要给大家介绍了关于后端报TypeError:Cannot read properties of null (reading ‘xxx‘)错误的解决办法,这个错误是开发中常见的错误之一,需要的朋友可以参考下2023-05-05解析SpringBoot 搭建基于 MinIO 的高性能存储服务的问题
Minio是Apache License v2.0下发布的对象存储服务器,使用MinIO构建用于机器学习,分析和应用程序数据工作负载的高性能基础架构。这篇文章主要介绍了SpringBoot 搭建基于 MinIO 的高性能存储服务,需要的朋友可以参考下2022-03-03
最新评论