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

Spring Boot与Thymeleaf展示图片出现404错误如何解决?

图片加载404问题排查与解决

核心问题定位

直接访问图片URL也返回404,说明不是Thymeleaf语法问题,根源是Spring Boot没找到静态图片资源,要么是存放位置不对,要么是路径配置有问题。

具体解决步骤

1. 调整静态资源存放位置

Spring Boot默认会自动扫描以下目录作为静态资源根目录:

  • src/main/resources/static/
  • src/main/resources/public/
  • src/main/resources/resources/
  • src/main/resources/META-INF/resources/

你需要把images文件夹放到上述任意一个目录下,标准做法是放在src/main/resources/static/images/,然后把所有图片文件(比如gtav.jpg)放进这个images文件夹里。

2. 修正Thymeleaf的图片路径写法

确保动态拼接图片文件名的语法正确,两种可行写法:

<!-- 写法1:路径变量方式 -->
<img th:src="@{/images/{img}(img=${product.img})}" alt="产品图" />

<!-- 写法2:字符串拼接方式 -->
<img th:src="@{/images/}+${product.img}" alt="产品图" />

注意路径开头的/,它代表项目根路径,能避免页面嵌套层级导致的相对路径错误。

3. 检查自定义静态资源配置(如有)

如果你在application.properties或application.yml里手动配置过spring.web.resources.static-locations,要确保配置的路径包含你的图片所在目录。比如:

# 示例:多个路径用逗号分隔
spring.web.resources.static-locations=classpath:/static/,classpath:/my-images/

如果没改过这个配置,直接用默认规则即可,跳过这一步。

4. 重启项目验证

改完后重启Spring Boot,先直接访问localhost:32426/images/gtav.jpg,能正常显示图片的话,再刷新页面看Thymeleaf渲染的图片是否加载正常。

额外注意事项

  • 数据库里存的文件名要和实际图片文件名完全一致,包括大小写(比如GTAV.jpg和gtav.jpg会被当成两个不同文件)
  • 确认图片文件本身没损坏,本地开发环境一般不用考虑文件权限问题

内容的提问来源于stack exchange,提问作者Sasaki Haise

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 22:25:17