是否有将SVG文件绘制到HTML5画布上的默认方式?谷歌浏览器支持将SVG加载为图像(并简单地使用drawImage),但开发人员控制台确实警告过resource interpreted as image but transferred with MIME type image/svg+xml.
我知道有可能将SVG转换为canvas命令(比如这个问题),但我希望不需要.我不关心旧的浏览器(所以如果FireFox 4和IE 9支持某些东西,那就足够了).
我有一个SharePoint网页,它引用存储在 img标记内的SharePoint列表的RootFolder中的SVG文件:
<img src='http://localhost/Lists/MyList/1/1.svg' type='image/svg+xml' />
Run Code Online (Sandbox Code Playgroud)
图像在桌面上以及iOS设备(Safari)上的IE9中正确呈现.但是,在Windows上的Chrome中(我目前使用的是v14)无法显示.它改为渲染破碎的图像图标.
Chrome中的网络选项卡显示文件1.svg是作为application/octet-stream下载的(因此渲染不正确).我需要更改什么才能让Chrome正确识别MIME类型(如标记中所指定)?它可能是Chrome中的一个错误(正如这个SO答案所示)?如果是这样,是否有办法以另一种方式加载SVG文件(例如,嵌入标签)?
请注意,IE的调试器(F12)正确地将类型标识为image/svg + xml,因此会按预期呈现图像.
编辑:由于它似乎是一个服务器端问题(感谢@robertc)我添加了这样一个事实,即该文件由SharePoint提供,怀疑SharePoint可能无法识别MIME类型.