访问localhost时SVG无法正常工作.为什么?

Art*_*iro 1 xhtml svg localhost

有人知道为什么这个页面http://emacsformacosx.com/中的相同代码在托管在本地tomcat服务器上时不会呈现?

我正在尝试使用一些SVG,但无法看到它在本地工作.有任何想法吗?

Nic*_*itz 7

该页面是XHTML,因此应该使用适当的Content-Type标头.如果页面以text/html的形式提供,那么Firefox和Chrome(我签入的只有两个)将无法识别SVG工作所需的XML命名空间.

虽然实时页面正在使用标题

Content-Type: text/xml; charset=UTF-8
Run Code Online (Sandbox Code Playgroud)

严格来说,这不是正确的.在我的测试中,服务它

Content-Type: application/xhtml+xml; charset=UTF-8
Run Code Online (Sandbox Code Playgroud)

使它正确呈现,并且是XHTML的合适类型.

请注意,您必须在服务器上检测Internet Explorer(以及其他不了解XHTML的浏览器)并将内容类型更改为text/html- 如果显示application/xhtml+xml内容类型IE将提示用户下载文件; 因为text/xml它会显示漂亮的XML文档树(虽然偶尔会混淆并设法通过内容嗅探正确显示HTML).

编辑:正如codedread所说,如果你想提供原始SVG文件,你需要使用SVG内容类型,但在这种情况下,文件实际上是XHTML,在单独的命名空间中带有内联SVG,因此XHTML类型是正确的.