【问题标题】:Image not displaying after deployment部署后不显示图像
【发布时间】:2015-10-09 00:00:02
【问题描述】:

我通过 Azure 发布了一个不想显示图像绝对 URL 的站点。基本上,我使用a free web service 来获取有关电影的信息。我已将 JavaScript 添加到页面以处理设置所有 HTML 控件,例如使用 document.getElementById("imgID").src = xmlElement.getAttribute("poster");<img /> 标记。

现在,这在我调试时可以完美运行,但在网站发布时则完全不行(通常情况下......)。当我检查元素并查看源时,源是有效的,但会出现“图像无效”图标或替代文本。

可以在这里看到一个例子: <img width="300" height="450" alt="Couldn't display image..." src="http://ia.media-imdb.com/images/M/MV5BNTQ5MTgzNDg4OF5BMl5BanBnXkFtZTcwMjAyODEzOQ@@._V1_SX300.jpg" />

Azure 中是否缺少某些内容,例如在 Web.config 中设置的内容?任何方向将不胜感激。

【问题讨论】:

  • 控制台有错误吗?可能是混合数据的问题,不安全与安全。
  • 我得到的唯一错误是来自 AdSense 控件的访问被拒绝错误。

标签: javascript asp.net html image azure


【解决方案1】:

在抱怨 Azure 之前使用您自己的图像!您的问题是因为您试图从第三方站点窃取图像 - 即 imdb。新手 Web 开发人员要做的第一件事就是学习如何保护他/她的图像被直接引用的无礼网站直接引用,这些网站想要节省流量和精力,并直接引用他们不拥有的图像。

您的站点在本地工作,因为没有设置 Referer 标头,或者因为它设置为 Localhost。但是一旦您发布,Referer header 就具有您网站的正确值。然后图像请求以 HTTP 403 状态结束。

将图片放入您的网站并从那里加载它们后,它就可以工作了。当然,为此,您必须遵守图像的版权。

【讨论】:

  • 感谢您提供Referer Header 说明。进一步的研究帮助我了解了问题所在。我觉得下面的问题提供了更清晰的解释。 stackoverflow.com/questions/3154562/… 。我目前也在与上述网络服务联系,以查看他们是否遵守 IMDb 的许可和站点访问条件,该条件允许将受版权保护的材料用于非商业用途。如果上述服务没有明确的权限,那么我将转换为使用 IMDb 的暗示性未记录的 API 获取信息
猜你喜欢
  • 2016-04-11
  • 1970-01-01
  • 2021-11-04
  • 1970-01-01
  • 1970-01-01
  • 2014-04-28
  • 2021-10-30
  • 1970-01-01
  • 2020-02-24
相关资源
最近更新 更多