存储在Amazon AWS S3上的图像未在Internet Explorer中呈现

时间:2015-03-27 10:20:40

标签: internet-explorer amazon-s3

对于我的AdLit网络应用程序,我将一些图像存储在Amazon AWS S3上。但是这些图像无法在任何版本的Internet Explorer中呈现(使用IE8,IE9和IE11测试)

你可以查看:

http://www.adlit.be/team

图像在Safari,Firefox和Chrome中呈现,但不在Internet Explorer中呈现。

有没有人有过这个问题的经验?它怎么能修复?

感谢您的帮助,

安东尼

2 个答案:

答案 0 :(得分:7)



根据W3C spec,无论在服务器响应Content-Type标头中声明什么,图像通常都会被mime-sniffed。但是,由于还存在MS专有的X-Content-Type-Options:nosniff标头,因此IE在这种情况下不执行mime-sniff步骤。因此,根据W3C,Content-Type标头给出了最终的mime类型。但那是“application / octet-stream”,它不是支持的图像类型。



(小提琴过滤器 - 点击查看完整大小)< / p>

答案 1 :(得分:2)

照片是JPEG图像,但它们都是image,没有扩展名。这意味着您的服务器没有向他们提供图像内容类型。您的服务器改为发送HTTP标头:

Content-Type:application/octet-stream

Chrome和Firefox显然足够聪明,可以注意到请求来自<img>元素,并从二进制内容本身识别JPEG格式。但是如果让服务器发送更合适的标题,你会让事情变得更容易:

Content-Type:image/jpeg

我有两个猜测:

  1. 如果您将服务器上的照片从image重命名为image.jpgimage.jpeg,那么您的服务器将推断出正确的内容类型,
  2. 如果内容类型正确,IE将显示照片。
  3. 哦等等,亚马逊S3。我认为来自S3的Web服务将从文件扩展名推断出Content-Type,但如果没有,您可以明确set metadata on S3 objects,包括(特别是)Content-Type。