springboot项目通过url直接访问本地的静态资源文件

在SpringBoot项目中实现图片上传并存储到本地文件系统后,为解决通过URL访问本地图片的问题,可以配置静态资源映射。在配置文件中,将本地D:/files/目录映射为静态资源路径,例如:file:/D:/files/,这样便能通过URL直接访问到存储在本地的图片资源。

怎么遇到该问题的:
在做图片上传功能时,把图片存到了本地的某个文件夹下,数据库中存储的肯定是图片的路径,这个时候就有疑问了,到底去怎么存?
当项目启动后,通过url访问的格式肯定是 localhost:/…这种形式,而文件存在本地磁盘下,这时候怎么办?
解决办法:
比如文件存储在了本地的D:/files/

配置文件中新增静态映射,需要先把springboot默认的映射加上,用file来进行指定想要访问的静态目录

linux服务器上以"/"表示跟目录,windows可以用file: d: 来进行映射


spring:
  web:
    resources:
      static-locations: classpath:/META-INF/resources/, classpath:/resources/, classpath:/static/, classpath:/public/, classpath:/templates/, file:/D:/files/

这样就可以直接访问到了!
在这里插入图片描述
在这里插入图片描述

Spring Boot项目中配置静态资源访问路径,以便通过URL访问存储在服务器上的静态图片,可以通过以下方式实现。 ### 一、使用`application.properties`或`application.yml`配置类路径下的静态资源位置 如果希望将静态资源存放在类路径下(如`classpath:/static/images`),可以通过如下配置: #### `application.properties` 配置示例: ```properties spring.mvc.static-path-pattern=/static/images/** spring.resources.static-locations=classpath:/static/images ``` 通过上述配置,可以访问位于类路径下`/static/images`目录中的静态资源。例如: 访问 `http://localhost:8080/static/images/test.jpg` 将会返回类路径下 `src/main/resources/static/images/test.jpg` 文件的内容[^1]。 #### `application.yml` 配置示例: ```yaml spring: mvc: static-path-pattern: /static/images/** resources: static-locations: classpath:/static/images ``` ### 二、配置本地磁盘路径以访问静态资源 若希望访问的是服务器本地磁盘上的文件(如Windows系统路径 `D:\images\` 或 Linux 系统路径 `/var/images/`),则需要自定义资源处理器。 #### 自定义资源处理器配置类: ```java @Configuration public class WebConfig implements WebMvcConfigurer { @Value("${image.save-path}") private String imageSavePath; @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/images/**") .addResourceLocations("file:" + imageSavePath); } } ``` #### 对应的`application.yml`配置示例: ```yaml image: save-path: D:\images\ ``` > 注意:在 Windows 系统中,路径末尾必须包含反斜杠 `\`,否则可能无法正确识别资源路径。Linux 系统中路径应以正斜杠 `/` 结尾[^3]。 ### 三、默认的静态资源映射路径 Spring Boot 默认将以下类路径目录作为静态资源访问路径,并按优先级顺序处理: - `classpath:/META-INF/resources/` - `classpath:/resources/` - `classpath:/static/` - `classpath:/public/` - 当前项目的根路径 `/` 这些目录下的内容可以直接通过 `http://localhost:8080/<filename>` 进行访问[^2]。 ### 四、通过URL访问图片的完整流程 1. **上传或保存图片到指定路径**:例如上传到 `D:\images\`。 2. **配置资源映射**:如上所述,通过 `addResourceHandlers` 映射 `/images/**` 到该路径。 3. **访问图片**:通过 URL `http://localhost:8080/images/test.jpg` 即可访问对应图片[^3]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sonk.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值