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

Spring Boot 1.5.3 版本图片无法显示问题求助

解决Spring Boot 1.5.3中图片无法显示的问题

看起来你已经折腾了好一阵,别着急,我们一步步来排查问题:

1. 先确认静态资源的存放位置是否符合Spring Boot规范

Spring Boot 1.5版本默认会自动加载以下目录中的静态资源:

  • classpath:/META-INF/resources/
  • classpath:/resources/
  • classpath:/static/
  • classpath:/public/

如果你的图片目前放在src/main/webapp/images目录下,这个路径在jar包部署时可能不会被Spring Boot自动识别(webapp目录主要用于war包部署场景)。最简单的解决办法是把images目录移到src/main/resources/static/下,这样你HTML里的<img src="images/DataServicesAdminAppLogo.png"...>就能直接访问到资源了。

2. 如果坚持使用webapp目录,需手动配置静态资源映射

从你提供的ApplicationContext.xml来看,你已经引入了mvc命名空间,但缺少静态资源的映射配置。你需要在配置文件中添加以下内容:

<mvc:resources mapping="/images/**" location="/images/"/>

这段配置会告诉Spring MVC,所有路径匹配/images/**的请求,都去webapp/images目录下查找对应的资源。

另外要注意:如果是war包部署,确保webapp目录在打包时被正确包含到war文件中;如果是jar包部署,建议还是用resources/static目录更稳妥。

3. 检查HTML中的路径是否包含上下文路径

如果你的应用部署时带有上下文路径(比如访问地址是http://localhost:8080/admin),那么直接写images/xxx.png会导致浏览器从当前页面路径下去找图片,可能出现404。这种情况下,推荐用JSTL的<c:url>标签来生成绝对路径:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
...
<img src="<c:url value='/images/DataServicesAdminAppLogo.png'/>" width="40" height="40" class="d-inline-block align-top" alt="" hspace="10"/>

这个标签会自动帮你加上应用的上下文路径,确保资源路径正确。

4. 结合网络检查器排查具体问题

从你提供的网络检查器截图,你可以重点看:

  • 请求图片的状态码:如果是404,说明路径匹配错误;如果是403,可能是权限拦截问题;如果是200但图片不显示,可能是图片文件损坏或者MIME类型配置错误。
  • 请求的实际URL:对比一下浏览器请求的URL和你预期的资源路径是否一致,这能快速定位路径问题。

5. 确认Spring Boot自动配置未被覆盖

如果你的启动类上使用了@ImportResource引入自定义的ApplicationContext.xml,同时又排除了WebMvcAutoConfiguration,那Spring Boot的默认静态资源配置就会失效,你需要手动配置完整的MVC相关设置,包括静态资源映射、视图解析等。如果没有排除自动配置,那前面的步骤应该能解决问题。

先试试把图片移到static目录,或者添加静态资源映射配置,应该就能解决你的问题了!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:51:51