springboot设置加载静态资源的路径(spring.resources.static-locations)

 更新时间:2023年08月10日 10:58:26   作者:南熏门前一只喵  
这篇文章主要介绍了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的包管理器来管理前端依赖的方案)。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java数据结构之栈的线性结构详解

    Java数据结构之栈的线性结构详解

    从数据结构上看栈和队列都是线性表,不过是两种特殊的线性表,栈只允许在的一端进行插人或删除操作,而队列只允许在表的一端进行插人操作、而在另一端进行删除操作,这篇文章主要给大家介绍了关于Java数据结构之栈的线性结构的相关资料,需要的朋友可以参考下
    2021-08-08
  • Springcloud Eureka配置及集群代码实例

    Springcloud Eureka配置及集群代码实例

    这篇文章主要介绍了Springcloud Eureka配置及集群代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-12-12
  • springboot通用分支处理超级管理员权限逻辑

    springboot通用分支处理超级管理员权限逻辑

    这篇文章主要为大家介绍了springboot通用分支处理超级管理员的权限逻辑,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • Java实现简单计算器小程序

    Java实现简单计算器小程序

    这篇文章主要为大家详细介绍了Java实现简单计算器小程序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • Java解析Excel内容的方法

    Java解析Excel内容的方法

    这篇文章主要介绍了Java解析Excel内容的方法,实例分析了java解析excel文件的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • 使用Spring Cache本地缓存示例代码

    使用Spring Cache本地缓存示例代码

    缓存是提高应用程序性能的重要手段,通过将频繁访问的数据存储在内存中,可以减少数据库访问次数,从而加速数据读取,这篇文章主要介绍了使用Spring Cache本地缓存的相关资料,需要的朋友可以参考下
    2025-08-08
  • Mybatis表的关联查询详情

    Mybatis表的关联查询详情

    这篇文章主要介绍了Mybatis表的关联查询详情,文章通过围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • java DOM4J 读取XML实例代码

    java DOM4J 读取XML实例代码

    最近学习Java,在处理XML文档的时候,查阅相关资料,发现了DOM4J这个jre库,相对C#的XML处理来说,功能还算是跟得
    2013-09-09
  • java中ThreadLocalRandom的使用详解

    java中ThreadLocalRandom的使用详解

    这篇文章主要介绍了java中ThreadLocalRandom的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • Java求两个正整数的最大公约数和最小公倍数

    Java求两个正整数的最大公约数和最小公倍数

    这篇文章主要介绍了输入两个正整数m和n,求其最大公约数和最小公倍数,需要的朋友可以参考下
    2017-02-02

最新评论