一尘不染

无法在Web应用程序中加载静态内容(图片/ JS)

jsp

我正在开发一个应用程序,当我尝试使用此路径加载图像时,现在需要在我的JSP文件中引用我的应用程序图像和其他内容,例如js等。

<img src="static/media/images/logo.gif" alt="welcome" />

我在浏览器中看到以下错误: unable to load the image

我什至试图参考绝对路径

<img src="/static/media/images/logo.gif" alt="welcome" />

但仍然没有运气。最后,当我附加项目名称时,它开始起作用。例如,如果我的Web应用程序名称是abc我使用的以下内容

<img src="/abc/static/media/images/logo.gif" alt="welcome to donateblood.com" />

但是我确定引用图像的方法不正确,因为这意味着Web应用程序名称的更改将导致我更改图像的每个URL,这根本不可行。在css文件中提到的图像工作正常。谁能指导我参考图像的正确方法。

附加信息:我将eclipse用作我的IDE,将Tomcat用作容器,并且它是Java EE标准的Web应用程序


阅读 305

收藏
2020-06-10

共1个答案

一尘不染

static/media/images/logo.gif

是相对路径。如果您位于http://localhost/myWebApp/foo/bar.html页面,它将解析为

http://localhost/myWebApp/foo/static/media/images/logo.gif

/static/media/images/logo.gif

是Web服务器绝对的路径。无论您身在何处,它都会解析为

http://localhost/static/media/images/logo.gif

因此,您需要在Web应用程序的上下文路径之前添加绝对路径。采用

<img src="${pageContext.request.contextPath}/static/media/images/logo.gif" alt="welcome" />

要么

<img src="<c:url value='/static/media/images/logo.gif'/>" alt="welcome" />

就像您应该对网络应用程序中的所有网址进行操作一样。

2020-06-10