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

Too*_*tje 5 internet-explorer amazon-s3

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

你可以看看这个:

http://www.adlit.be/team

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

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

谢谢你的帮助,

安东尼

use*_*485 7




根据W3C规范,无论在服务器响应Content-Type标头中声明什么,图像通常都会被嗅探.

但由于还存在MS专有的X-Content-Type-Options:nosniff头,IE在这种情况下不会执行mime-sniff步骤.因此,根据W3C,Content-Type标头给出了最终的mime类型.但那是"application/octet-stream",它不是受支持的图像类型.



(提琴手过滤器 - 点击查看完整尺寸)


rha*_*oto 2

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

Content-Type:application/octet-stream
Run Code Online (Sandbox Code Playgroud)

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

Content-Type:image/jpeg
Run Code Online (Sandbox Code Playgroud)

我有两个猜测:

  1. 如果您将服务器上的照片从 重命名为imageimage.jpgimage.jpeg那么您的服务器将推断出正确的内容类型,并且
  2. 给定正确的 Content-Type,IE 将显示照片。

哦等等,亚马逊 S3。我认为 S3 的 Web 服务将从文件扩展名推断出 Content-Type,但如果没有,您可以显式设置 S3 对象上的元数据,包括(特别是)Content-Type。