为什么SVG不能在本地HTML文件上工作?

我很困惑。

如果我通过浏览器(OSX上的Chrome或Safari)指向此网站,它将完美显示所有SVG:

http://emacsformacosx.com/

现在,如果我在该页面上查看源代码,将其复制并粘贴到桌面上的新HTML文档中,然后使用任一浏览器查看该文档,我根本没有收到SVG。

为什么区别?

为什么SVG在网站上工作,但不在本地HTML文件中工作?

谢谢!


您将其重命名为HTML,并且浏览器假定HTML内容..而页面为text/xml ..

如果您将其重命名为.xml并将其打开,您将看到它很好。


HTTP响应头信息使浏览器将信息解释为XML:

HTTP/1.1 200 OK
Date: Sun, 21 Feb 2010 02:32:02 GMT
Server: Apache/2.2.14 (Debian)
Vary: Accept-Encoding
Transfer-Encoding: chunked
Content-Type: text/xml; charset=UTF-8

您看到,提供页面的服务器足够智能,可以检测到这是一个XML文档,并告诉浏览器。 当您从磁盘加载文件时,您的浏览器可能不够聪明,无法做到这一点,并倾向于依赖文件的扩展名来提供此信息。

您可以尝试将以下内容插入到<head>元素中:

<meta http-equiv="Content-Type" content="text/xml; charset=UTF-8" />

你看我在那里做了什么? 它只是HTTP响应头的镜像,它将指定文档类型和编码。

这个标签的目的是让浏览器思考:“嘿,服务器告诉我这个文档是HTML,但是文档告诉我它是XML。这个文档可能比服务器知道得更好,所以我会信任它。 .. ::解释为XML ::“

链接地址: http://www.djcxy.com/p/88839.html

上一篇: Why doesn't SVG work on local HTML files?

下一篇: Why doesn't form nested in p validate as XHTML