我正在开发一个应用程序,我需要引用我的应用程序图像和js等其他东西。 现在在我的JSP文件中,当我尝试使用此路径加载图像时
<img src="static/media/images/logo.gif" alt="welcome" />
我在浏览器中看到以下错误:unable to load the image
我甚至试图引用绝对路径
<img src="/static/media/images/logo.gif" alt="welcome" />
但仍然没有运气。最后,当我添加我的项目名称时,它开始工作。例如,如果我的网络应用程序名称为abc
我使用了以下内容
<img src="/abc/static/media/images/logo.gif" alt="welcome to donateblood.com" />
但我确定不是引用图像的正确方法,因为这意味着网络应用程序名称的更改将导致我更改图像的每个URL,这根本不可行。 在css文件中提到的图像工作得很好。 任何人都可以指导我参考图像的正确方法。
其他信息: 我使用eclipse作为我的IDE,使用Tomcat作为容器,它是一个Java EE标准的web应用程序
答案 0 :(得分:2)
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" />
您应该对webapp中的所有网址执行操作。