You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot多模块项目在IntelliJ IDEA运行时图片路径错误无法加载如何解决

问题原因

该问题是IntelliJ IDEA和STS的默认运行*工作目录(Working Directory)*规则不同导致的:STS默认以启动类所在的模块根目录作为工作目录,IDEA默认以整个项目的根目录作为工作目录,因此代码中使用相对路径存储文件时,生成的文件路径和预期不符。

解决方案

方法1:修改IDEA运行配置(无需改代码,最快生效)

  • 打开IDEA右上角运行配置的下拉菜单,选择 Edit Configurations
  • 找到你运行ShopmeBackEnd模块对应的Spring Boot启动项
  • 定位到 Working directory 配置项
  • 直接填入宏值 $MODULE_WORKING_DIR$,或者手动选择路径到 ShopmeProject/ShopmeWebParent/ShopmeBackEnd
  • 保存配置后重启项目即可,此时运行逻辑和STS完全一致,文件会生成到目标路径

方法2:代码层固定路径(全IDE兼容,适合团队协作)

如果要避免换IDE、换设备时重复配置,可以直接修改代码逻辑固定存储路径:

  1. 在application.properties或application.yml中添加上传路径配置:
file.upload-path=./ShopmeWebParent/ShopmeBackEnd/user-photo
  1. 代码中注入配置值使用,不要硬写相对路径:
@Value("${file.upload-path}")
private String uploadPath;
  1. 同步修改静态资源映射规则,保证浏览器可以正常加载图片:
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/user-photo/**")
            .addResourceLocations("file:" + uploadPath + "/");
}
验证步骤

重启项目后上传一张测试图片,确认文件生成在ShopmeProject\ShopmeWebParent\ShopmeBackEnd\user-photo路径下,再访问浏览器对应的图片链接确认可以正常显示即可。

内容的提问来源于stack exchange,提问作者Đức Long

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 03:06:03