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

Tomcat中JSP无法访问图片,求不改代码及图片位置的解决方案

解决办法

问题根源是你JSP里的图片路径/images/common/logo.jpg是服务器根目录相对路径,浏览器会直接请求http://localhost:8080/images/common/logo.jpg,但你的应用部署在sfeaapp上下文路径下,实际图片的正确路径是http://localhost:8080/sfeaapp/images/common/logo.jpg,所以导致加载失败。以下是无需修改JSP代码和图片位置的解决办法:

方法1:将应用设置为Tomcat根上下文

  • 直接把Tomcat webapps目录下的sfeaapp文件夹(或war包)重命名为ROOT,这样访问http://localhost:8080/就会指向你的应用,此时/images/common/logo.jpg会自动匹配到webapps/ROOT/images/common/logo.jpg,图片就能正常加载。
  • 或者修改Tomcat的conf/server.xml,添加上下文配置(需重启Tomcat生效):
    <Context path="" docBase="C:\Users\jl.lmnchr.rsp\redhat-community-server-connector\runtimes\installations\tomcat-9.0.41\apache-tomcat-9.0.41\webapps\sfeaapp" reloadable="true"/>
    

方法2:配置Tomcat URL重写规则

  1. 在你的应用WEB-INF目录下创建rewrite.config文件,添加以下规则:
    RewriteCond %{REQUEST_URI} ^/images/(.*)$
    RewriteRule ^/images/(.*)$ /sfeaapp/images/$1 [L]
    
  2. 在WEB-INF/web.xml中添加URL重写过滤器配置:
    <filter>
        <filter-name>RewriteFilter</filter-name>
        <filter-class>org.apache.catalina.filters.RewriteFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>RewriteFilter</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
    </filter-mapping>
    
    配置完成后,Tomcat会自动将根目录下的/images/请求重定向到sfeaapp上下文对应的路径,无需修改原有代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 16:35:11