SpringBoot 自定义静态资源映射目录(配置addResourceHandler和addResourceLocations映射静态资源地址)

在SpringBoot中,自定义静态资源映射目录

编写项目时通常将静态资源放置在resources目录

resources目录又可以根据具体的使用途径分为的public、static、template 等目录
在这里插入图片描述
但是当你将SpringBoot项目打包为 war 包时,将会把图片等项目中所有的静态资源全都打包进去,这显然对于发布维护是非常不方便的,因此我么可以将静态资源放置在服务器的某些磁盘中,并通过SpringBoot进行访问

这里简单举个栗子

编写一个类,继承WebMvcConfigurer 类,重写addResourceHandlers 方法

先上代码,这里的addResourceHandler 是用来设置访问路径的,也就是通过浏览器访问时输入的地址

http://localhost:8443/tryYiTry/具体文件名称

addResourceLocations 是设置的资源映射路径,也就是在磁盘中的真实地址

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * @author Mi
 * @version 1.0
 * @description: TODO
 * @date 2022/4/17 9:47
 */
@Configuration
public class SpringWebMvcConfig implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/tryYiTry/**").addResourceLocations("file:C:/Users/Mi/OneDrive/桌面/图片/");
        //registry.addResourceHandler("/tryYiTry/**").addResourceLocations("file:C:\\Users\\Mi\\OneDrive\\桌面\\图片/");
    }
}

例如此处,设定静态资源存放的磁盘目录为 “图片”文件夹
那么对应的在磁盘中的路径即为

C:\Users\Mi\OneDrive\桌面\图片

相应的addResourceLocations中的路径就要设置为

file:C:/Users/Mi/OneDrive/桌面/图片/
或者
file:C:\\Users\\Mi\\OneDrive\\桌面\\图片/

注意:这两种都可以成功访问,但是路径必须以“ / ”结尾

在这里插入图片描述

启动项目在浏览器中尝试一下,
在这里插入图片描述
即,成功访问到该图片
在这里插入图片描述

  • 8
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Spring Boot中,静态资源映射是由Spring Boot默认提供的配置完成的。Spring Boot将所有访问映射到以下目录:classpath:/static、classpath:/public、classpath:/resources和classpath:/META-INF/resources。如果这些目录中有多张同名的图片,访问地址的优先级顺序为:META-INF/resources > resources > static > public。\[2\] 如果我们请求一个以".html"结尾的静态资源Spring Boot会按照优先级高的文件夹先查找,然后再查找优先级低的文件夹,直到找到指定的静态资源为止。\[3\] 例如,在src/main/resources/static目录下创建了一个hello.html文件,当我们启动Spring Boot并访问"http://localhost:8080/hello.html"时,就会显示该hello.html页面。\[3\] 总结来说,Spring Boot静态资源映射提供了默认配置,可以直接将静态资源放置在指定的目录中,无需进行额外的配置即可访问这些静态资源。\[1\] #### 引用[.reference_title] - *1* *3* [Spring Boot静态资源映射](https://blog.csdn.net/weixin_64842782/article/details/125089662)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [springboot静态资源映射](https://blog.csdn.net/ChOLg/article/details/102800978)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值