栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringBoot 实战: 静态资源分发配置

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot 实战: 静态资源分发配置

SpringBoot 实战: 静态资源分发配置

文章目录
  • SpringBoot 实战: 静态资源分发配置
  • 正文
    • 1. 默认配置
    • 2. 在 application.yml 中配置
    • 3. 实现 WebMvcConfigurer 配置
      • 3.1 实现按命名空间划分静态资源
    • 4. 总结
  • 其他资源
    • 参考连接
    • 完整代码示例

正文 1. 默认配置
  • classpath:static/、classpath:public/、classpath:resources/、classpath:meta_INF/resources/ 四个目录下的文件默认作为静态资源分发

  • 步骤

  1. 创建一个 SpringBoot 项目
  2. 向默认 classpath 目录添加如下文件
/src/main/resources
├── application.yml
├── meta-INF
│   └── resources
│       └── from_meta_inf_resources.png
├── public
│   └── from_public.png
├── resources
│   └── from_resources.png
└── static
    └── from_static.png
  1. 按文件名访问默认根目录

2. 在 application.yml 中配置
  • 会覆盖默认的配置
  • 一样仅能将静态资源目录映射到根路径下
  1. 配置文件
  • /src/main/resources/application.yml
spring:
  web:
    resources:
      static-locations:
        - classpath:templates/
  1. 添加静态资源
/src/main/resources
├── application.yml
└── templates
    └── from_templates.png
  1. 访问静态资源

3. 实现 WebMvcConfigurer 配置
  • 会覆盖 application.yml 的配置
  1. 添加 WebMvcConfig 配置类(实现 WebMvcConfigurer 接口)
  • /src/main/java/com/example/demo/WebMvcConfig.java

将 static 目录和 custom 目录作为静态资源目录

package com.example.demo;

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
       registry.addResourceHandler("/**").addResourceLocations("classpath:static/", "classpath:custom/");
    }
}
  1. 添加静态资源
/src/main/resources
├── application.yml
└── custom
    └── from_custom.png
  1. 访问资源

3.1 实现按命名空间划分静态资源
  • 目标:静态资源分发按命名空间划分
  • 一样使用实现 WebMvcConfigurer 的方式
  1. 修改配置类
  • /src/main/java/com/example/demo/WebMvcConfig.java
package com.example.demo;

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/static/**").addResourceLocations("classpath:static/");
        registry.addResourceHandler("/public/**").addResourceLocations("classpath:public/");
    }
}
  1. 访问静态资源

4. 总结
  • 静态资源分配配置方法
    • A. 默认配置
    • B. application.yml 配置文件
    • C. 实现 WebMvcConfigurer 接口的配置类
  • 效果优先级(覆盖)
    • C > B > A
  • 推荐:使用 C 方法,同时使用命名空间区分不同资源类型或模块
其他资源 参考连接
Titlelink
SpringBoot中配置Web静态资源路径——详解https://blog.csdn.net/wangxin1949/article/details/89016428
springboot之静态资源路径间的较量https://zhuanlan.zhihu.com/p/30436022
完整代码示例

https://github.com/superfreeeee/Blog-code/tree/main/back_end/spring/spring_boot_static_resources

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/294725.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号