为什么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