【问题标题】:image is getting cached , but not getting displayed?图像被缓存,但没有显示?
【发布时间】:2013-03-11 23:07:24
【问题描述】:

我有一张图片:

<img id="img1" src="http://igyaan.in/wp-content/uploads/2013/03/Nvidia-580x362.jpg" />

来自 url 的图像被缓存,但图像没有显示。

我使用 firebug 对其进行了分析,在那里我可以看到对图像的 GET 请求,并返回图像。此外,还有一个我从未请求过的 Facebook pic 请求(萤火虫:错误请求):

http://a1.sphotos.ak.fbcdn.net/hphotos-ak-snc7/424831_319096764809781_1948053300_n.jpg

jsFiddle:http://jsfiddle.net/Qb6YX/5/

知道为什么会这样吗?我该如何解决这个问题?
MoreInfo:我正在开发一个 Rss 提要阅读器,它显示帖子的图像。我在使用这个特定网站时遇到了问题。

【问题讨论】:

  • 您的Nvidia-580x362.jpg 发送一个Location: http://a1.sphotos.ak.fbcdn.net/hphotos-ak-snc7/424831_319096764809781_1948053300_n.jpg 标头。您的图片正在重定向到 facebook 。
  • 您的图像似乎进行了这种重定向 - 无论出于何种原因,您都必须在服务器端检查。缓存的只是 302 found 重定向
  • 某种盗链保护?
  • 您是在服务器上托管图像,还是尝试从其他地方加载它?我已经尝试过了,它试图从 facebook 加载图像。我怀疑图片的主机试图阻止您热链接图片?

标签: html


【解决方案1】:

图片很可能是受热链接保护的。这就是为什么当您尝试在页面上加载它时它会被重定向。在这种情况下,您应该使用服务器端代理来检索图像并从那里加载它。

使用来自Images.weserv.nl的外部服务:

<img src="http://images.weserv.nl/?url=igyaan.in/wp-content/uploads/2013/03/Nvidia-580x362.jpg" />

jsFiddle

如果您为此目的在您的服务器上托管代理脚本会更好,这样您的 RSS 提要阅读器的依赖关系就会更少。

但是,有时我们应该尊重网站所有者对盗链保护的决定。一种解决方法是将无法加载的图像替换为默认图像。

【讨论】:

    猜你喜欢
    • 2017-09-09
    • 2013-05-23
    • 1970-01-01
    • 2015-02-05
    • 1970-01-01
    • 1970-01-01
    • 2019-06-13
    • 2017-06-29
    • 2021-08-17
    相关资源
    最近更新 更多