config/WebMvcConfig.java

不需要把两段都改成一样的路径。 这两行代码的作用是不同的,你需要根据实际的文件存放情况来分别处理。

我们来逐一分析:

1. 第一段代码(必须修改)

复制代码
registry.addResourceHandler("/upload/**")
        .addResourceLocations("file:D:\\LeStoreDownload\\...");
  • 作用: 这是后端文件上传接口保存文件的真实物理目录。
  • 是否需要改? 绝对需要! 因为 Linux 服务器上根本没有 D:\ 盘。你必须把它改成服务器上用来真正存储上传图片的文件夹路径(例如 /etc/nginx/img/upload/)。

2. 第二段代码(不建议直接改)

复制代码
registry.addResourceHandler("/**")
        .addResourceLocations("file:D:\\LeStoreDownload\\...");
  • 作用: /** 会拦截所有 请求。如果你把它指向图片文件夹,那么前端访问 HTML、CSS、JS 甚至后端 API 接口时,Spring Boot 都会去这个图片文件夹里找文件,这会导致你的整个网站崩溃(白屏或接口全挂)
  • 是否需要改? 强烈建议删掉或注释掉这段代码!

💡 为什么可以删掉第二段?

因为你之前已经配置了 Nginx:

复制代码
location ~* \.(jpg|jpeg|png|gif|ico)$ {
    alias /etc/nginx/img/upload/;
}

Nginx 已经完美接管了图片的请求。所以 Spring Boot 后端就不需要再配置 /** 去处理图片了,让它专心处理业务逻辑即可。

✅ 最终推荐的正确代码

在你的 WebMvcConfig.java 中,保留第一行并修改为 Linux 路径,删除第二行。最终代码如下:

复制代码
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    // 仅保留这一行,并将路径修改为 Linux 服务器上的真实图片存放目录
    // 注意:Linux 路径使用正斜杠 / ,且末尾一定要带上 /
    registry.addResourceHandler("/upload/**")
            .addResourceLocations("file:/etc/nginx/img/upload/");
    
    // ⚠️ 把原来的 registry.addResourceHandler("/**") ... 这一段彻底删掉!
}

📌 总结操作步骤:

  1. 将代码改为上面的推荐写法。
  2. 重新执行 mvn clean package -DskipTests 打包。
  3. 将新生成的 JAR 包上传到服务器覆盖旧版。
  4. 重启 Java 服务。
相关推荐
边境悍匪1 小时前
蜗牛学苑 Java 智能体学习 Day45|Knife4j+SpringBoot3、书城项目整合 MyBatis 思维导图复盘
java·开发语言·vue.js·学习·spring
我的xiaodoujiao1 小时前
Django 基础知识详细图文教程 9-Django 模板引擎 2
开发语言·数据库·后端·django
菜鸟~noob2331 小时前
【太空电子战】从CCS到Meadowlands:反通信系统的二十年演进史【含matlab代码】
开发语言·matlab
2601_962885722 小时前
A股数据源和 API 怎么选?(2026 全景选型指南 + 决策树)
python
Ticnix2 小时前
别再手动上线了:一条命令带备份、健康检查和自动回滚
后端·python·ci/cd
正经教主2 小时前
【FDE系列】阶段2:Day 32:多表查询 — JOIN 与聚合
人工智能·python·fde
Ticnix2 小时前
迁移脚本能跑通,不代表你回滚得回来
后端·python
我的xiaodoujiao2 小时前
Django 基础知识详细图文教程 10-Django 模板引擎 3
后端·python·测试工具·django
quantdash_cc2 小时前
量化策略为什么需要实时行情数据?从信号产生到交易决策的时间差说起
开发语言·python·数据分析·量化交易·股票数据·quantdash
H Journey2 小时前
pip 和uv 开发和部署python项目
python·pip·uv