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

JSP项目打包WAR部署后图片无法加载问题求助

解决方案:WAR部署后JSP图片无法显示问题

1. 修正图片路径写法

你的JSP中图片路径使用了Windows反斜杠\,且未考虑Web应用的上下文路径,这是核心问题之一。修改图片标签的src属性:

<td><img src="${pageContext.request.contextPath}/img/${pl.img}" width="40" height="40" alt=""></td>
  • ${pageContext.request.contextPath}会自动获取当前Web应用的上下文路径(比如部署后路径是/toy,这个变量就会返回/toy),确保图片请求路径始终正确,不受部署上下文影响。
  • Web环境统一使用正斜杠/作为路径分隔符,避免跨平台问题。

2. 确认图片资源被正确打包进WAR

检查资源位置

确保img目录位于Web项目的资源根目录下:

  • 如果是Maven项目,放在src/main/webapp目录下;
  • 如果是普通IDEA Web项目,放在web目录下。
    只有放在这个目录下的资源,打包时才会被自动包含进WAR文件。

验证打包配置

  • 打开IDEA的File -> Project Structure -> Artifacts;
  • 找到你创建的WAR artifact,检查Output Layout中是否包含img目录(应该在WEB-INF同级);
  • 如果缺失,点击+ -> Directory Content,选择你的img目录所在的Web根目录,添加进去。

检查WAR包内容

打包完成后,解压WAR文件,确认根目录下存在img文件夹,且里面包含对应的图片文件。如果没有,说明打包配置有误,需要重新调整。

3. 关于out目录的说明

IDEA运行项目时,out目录是用来存放编译后的类文件、Web资源等临时文件的,打包WAR时不需要依赖out目录。正常打包应该基于项目的源代码和Web根目录生成,所以无需担心out目录的影响。

额外验证步骤

部署WAR后,打开浏览器的开发者工具(F12),切换到Network标签,刷新页面查看图片的请求URL:

  • 如果返回404,说明路径仍然错误,检查上下文路径和图片实际存放位置是否匹配;
  • 如果返回200但图片不显示,检查图片文件是否损坏,或者文件名是否和数据库中存储的一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 14:34:53