<img/>在JSP中不起作用

时间:2012-02-03 19:11:45

标签: jsp

当我从JSP文件图像中提供相对路径时,我正在使用eclipse。但是当我使用绝对路径到我的图像时,它只能在Eclipse的内部浏览器中工作,但仍然不适用于其他浏览器Firfox,IE等。

1 个答案:

答案 0 :(得分:8)

显然相对路径是完全错误的。

您需要意识到<img src>应该引用公共URL,而不是Web服务器的本地磁盘文件系统。这就是需要加载图像的webbrowser,而不是webserver本身。如果此公共URL是相对的,则相对于当前请求URL(您在浏览器的地址栏中看到的URL)进行解析。相对于本地磁盘文件系统中JSP的位置,它没有得到解决。

想象一下,您正在打开此URL上的JSP页面

  

http://localhost:8080/contextname/some.jsp

并且该图片的原始格式可通过此URL访问

  

http://localhost:8080/contextname/images/some.png

然后需要在JSP中引用图像,如下所示

<img src="images/some.png" />

但是如果JSP是通过此URL打开的

  

http://localhost:8080/contextname/somefolder/some.jsp

然后需要在JSP中引用图像,如下所示

<img src="../images/some.png" />

为了避免每次摆弄相对路径,您也可以使用域相对URL。您可以通过在图像URL前加上下文路径来执行此操作:

<img src="${pageContext.request.contextPath}/images/some.png" />

这将最终生成的HTML如下所示(在浏览器中右键单击JSP,查看源

<img src="/contextname/images/some.png" />

另见: