<img>在JSP中不起作用

2 jsp

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

Bal*_*usC 8

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

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

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

HTTP://本地主机:8080/CONTEXTNAME/some.jsp

并且该图像是以原始形式在此URL上可访问的

HTTP://本地主机:8080/CONTEXTNAME /图像/ some.png

那么需要在JSP中引用图像,如下所示

<img src="images/some.png" />
Run Code Online (Sandbox Code Playgroud)

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

HTTP://本地主机:8080/CONTEXTNAME/somefolder/some.jsp

那么需要在JSP中引用图像,如下所示

<img src="../images/some.png" />
Run Code Online (Sandbox Code Playgroud)

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

<img src="${pageContext.request.contextPath}/images/some.png" />
Run Code Online (Sandbox Code Playgroud)

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

<img src="/contextname/images/some.png" />
Run Code Online (Sandbox Code Playgroud)

也可以看看: