我很困惑。
如果我通过浏览器(OSX上的Chrome或Safari)指向此网站,它会完美显示所有SVG:
现在,如果我在该页面上查看源代码,复制它,并将其粘贴到我桌面上的新HTML文档中,然后使用任一浏览器查看,我根本就没有SVG。
为什么会有差异?
为什么SVG在网站上工作,而不在本地HTML文件中工作?
谢谢!
答案 0 :(得分:8)
您将其重命名为HTML,并且浏览器采用html内容..而页面为text/xml
..
如果您将其重命名为.xml
并将其打开,您会看到它很好..
答案 1 :(得分:4)
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 ::“