资源解释为 Document,但使用 MIME 类型 image/svg+xml 传输:

Posted

技术标签:

【中文标题】资源解释为 Document,但使用 MIME 类型 image/svg+xml 传输:【英文标题】:Resource interpreted as Document but transferred with MIME type image/svg+xml: 【发布时间】:2013-04-12 20:43:13 【问题描述】:

当我有一张带有 javascript chrome 的 SVG 图片时,显示“资源解释为文档,但使用 MIME 类型 image/svg+xml 传输”。 我可以将它包含在 iframe 中或嵌入 TAG 相同的结果。 但是,当我将 mime 类型更改为其他类型时,浏览器无法呈现它。 所以我猜“image/svg+xml”是正确的?

SVG

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg version="1.1" baseProfile="full" id="draw" 
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
viewBox="0 0 480 480"> 
<defs>
<style type="text/css">
<![CDATA[
]]>
</style>
</defs>
<rect x="0" y="0"   rx="0" ry="0" fill="rgb(255, 255, 255)" />

</g>
<script type="text/ecmascript"><![CDATA[
(function ()  

//Some code here

());
]]>
</script>
</svg>

【问题讨论】:

你如何“改变mime类型”? 服务器对 SVGz 的响应是: Content-Type: image / svg + xml Content-Encoding: gzip 我之前使用的是嵌入标签(现在是 iframe),然后我也尝试使用 type="image/svg+xml" 作为嵌入标签 再次打扰,SVG 还是显示出来了,是什么问题? chrome 中的控制台消息。这不是一个真正的问题。但是检查您的代码的其他开发人员总是会好奇是否存在问题。 【参考方案1】:

是的,image/svg+xml 是 SVG 内容的正确互联网媒体类型,请参阅 IANA。

【讨论】:

那么为什么 chrome 还在抱怨它,我们能做些什么(如果我们能做点什么......) 什么版本的chrome?似乎已经修复了一段时间:code.google.com/p/chromium/issues/detail?id=128988 对不起,它实际上是一个 QTwebkit 引擎,我没有注意到 chrome 从 webkit 转移到闪现......我想除非更新 QTwebkit 引擎,否则没有什么可做的:(跨度> 【参考方案2】:

我有这个问题很长一段时间,但似乎 application/svg-xml 是正确的 mime。

有关详细信息,请参阅此https://github.com/w3c/svgwg/issues/266。 mime/svg-xml 也可能存在漏洞。

【讨论】:

以上是关于资源解释为 Document,但使用 MIME 类型 image/svg+xml 传输:的主要内容,如果未能解决你的问题,请参考以下文章

在数据 URL 中,资源解释为 Document,但使用 MIME 类型 application/pdf 传输

资源解释为文档,但使用 MIME 类型 application/csv 传输

资源解释为样式表,但使用 mime 传输

资源解释为脚本,但使用 MIME 类型 text/html 传输:JSONP

Flask:资源解释为样式表,但使用 MIME 类型 text/html 传输

Chrome 说“资源解释为脚本,但使用 MIME 类型文本/纯文本传输。”,啥给出?