html5 – Chrome未加载SVG文件作为图像/ svg xml

前端之家收集整理的这篇文章主要介绍了html5 – Chrome未加载SVG文件作为图像/ svg xml前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个SharePoint网页,引用存储在img标签内的SharePoint列表的RootFolder中的SVG文件
<img src='http://localhost/Lists/MyList/1/1.svg' type='image/svg+xml' />

图像在桌面以及iOS设备(Safari)上的IE9中正确呈现.但是,在Windows上的Chrome(我目前使用的是v14),它无法显示.它反而呈现破碎的图像图标.

Chrome中的网络选项卡显示文件1.svg作为应用程序/八位字节流(因此不正确的渲染)被下载.我需要更改哪些内容,以便Chrome正确识别MIME类型(如标记中所指定)?这可能是Chrome中的错误(如this SO answer所示)?如果是这样,有没有办法以另一种方式加载SVG文件(例如,嵌入标签)?

请注意,IE的调试器(F12)将类型正确识别为image / svg xml,因此可以按预期方式呈现图像.

编辑:由于它似乎是服务器端的问题(感谢@robertc),我已经添加了该文件由SharePoint提供的事实,怀疑SharePoint可能无法识别MIME类型.

解决方法

img元素上没有属性类型,您需要在服务器上正确设置MIME类型.我认为它只能在IE中工作,因为它正在进行内容嗅探.

在IIS7及以上版本中,您可以在system.webServer部分的web.config文件中指定MIME类型映射:

<staticContent>
  <mimeMap fileExtension=".svg" mimeType="image/svg+xml"/>
</staticContent>

之后,它应该在所有浏览器中运行,但您可能需要强制刷新(Ctrl F5)才能使其再次请求文件.

猜你在找的HTML5相关文章