2011-12-14 52 views
-2

我正在处理应用程序,我需要将我的应用程序图像和其他东西,如js等 现在在我的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" /> 

但仍然没有运气。最后,当我追加我的项目名称时,它开始工作。例如,如果我的网络应用程序名称为abc我用下面的事情

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

,但我肯定不是指图像的正确方法,因为这意味着Web的应用程序名称的改变会导致我改变每每一个图像的URL都根本不可行。 在css文件中提到的图像工作得很好。 任何人都可以引导我正确的方式来引用图像。

其他信息: 我使用Eclipse作为我的IDE和Tomcat作为与它一起的容器是一个Java EE标准的Web应用程序

+0

[浏览器在调用转发到JSP的Servlet时无法访问CSS和图像](http://stackoverflow.com/questions/3655316/browser-cant-access-css-and-images-当调用一个小服务程序,它转发到aj/3658735#3658735) – BalusC 2011-12-14 19:03:41

回答

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 

是绝对的网络server.Wherever你是一个路径,它解析为

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" /> 

,你应该在Web应用程序的所有网址做。

+0

感谢您的帮助,我知道关于web应用程序的上下文是如果可能以其他方式绕过或不 – 2011-12-15 03:30:16