jsp - <img> 在 JSP 中不工作

标签 jsp

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

最佳答案

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

你需要意识到 <img src>应该引用公共(public) URL,而不是网络服务器的本地磁盘文件系统。即需要加载图像的网络浏览器,而不是网络服务器本身。如果这个公共(public) 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" />

另见:

关于jsp - <img> 在 JSP 中不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9134148/

相关文章:

Spring MVC 将代理变量注入(inject)模型

java - 在 MySQL 数据库中插入非英文文本时的 JSP 编码

java - 如何使用scriptlet提高从oracle 10g到jsp页面的数据传输速度

java - 如何将 scriptlet 转换为 jSTL 标签

java - 根据 JSTL 的键从 hashmap 中获取值

java - 无法编译 JSP : 的类

html - 使用 tomcat 7 运行 JSP 文件

javascript - 用jsp更新数据库

java - 从当前 URL 获取 HTTP 或 HTTPS

html - JSP 中的垂直图条