【问题标题】:img tag image not loading in chromeimg 标签图像未在 chrome 中加载
【发布时间】:2015-01-08 06:08:27
【问题描述】:

我一直在开发一个动态 Web 应用程序,它需要在我的本地文件中的 jsp 上显示图像。当我在 Eclipse 中运行它时,Ant 程序运行得非常好,但是当我在 chrome 中尝试相同时,它不会加载图像。

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Image Processor</title>
</head>
<body bgcolor="BLACK">
<h3 style="color : WHITE" align="Center">Process Your Image</h3>
<img src ="E:\Pics\Wallpapers\me.jpg" width=300 height=400>
<%
String name = request.getParameter( "path" );
session.setAttribute( "path", name );
%>
</body>
</html>

【问题讨论】:

  • 能否在包含图像的地方包含代码?
  • 网页无法从最终用户的机器上打开文件。图片必须是 Web 应用程序的一部分,并由您的 Web 服务器通过 HTTP 提供。
  • 有时是文件格式。我在使用 jpeg2000 时遇到了问题。尝试使用另一个,而不是 jpg。

标签: java html eclipse jsp google-chrome


【解决方案1】:

您需要了解网络的工作原理。

您有一个用户,例如位于法国,使用他的浏览器访问位于http://foo.bar.com 的网页。这会向位于例如巴西的服务器 foo.bar.com 发送 HTTP 请求。服务器发回一个 HTML 页面,其中包含例如

<img src="image.jpg" />

当它看到这一点时,浏览器向巴西的服务器发送另一个 HTTP 请求,请求http://foo.bar.com/image.jpg 的图像。

请注意,用户在浏览器中看到的所有内容都来自位于其他地方的网络服务器。巴西的网站无权在法国用户的机器上打开文件。这将构成一个重大的安全问题,因为该网站可能会收集有关最终用户计算机上文件的私人信息。

您可能对以下事实感到困惑:在开发过程中,服务器和客户端机器是同一台机器。但这不会改变任何事情。应用程序网页上显示的所有内容都必须来自 Web 服务器,通过 HTTP。您不能简单地将图像的来源设置为文件路径。图片的路径必须指向您的 web 应用提供的图片,并部署在您的网络服务器中。

【讨论】:

  • 是的,我明白了..它只是在开发过程中客户端和服务器是同一台机器休息所需的文件必须是 Web 应用程序的一部分!非常感谢!!
【解决方案2】:

您需要将图像放入您的应用中以避免在不同位置执行时出现问题:

<link rel="shortcut icon" href="<%=session.getAttribute("URL_HOST") %>/resources/your_image.jpg" />

设置会话属性检查this question

【讨论】:

    猜你喜欢
    • 2020-08-11
    • 1970-01-01
    • 2014-11-13
    • 1970-01-01
    • 1970-01-01
    • 2017-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多