Html 如何使用<;在Firefox中显示SVG;对象>;?

Html 如何使用<;在Firefox中显示SVG;对象>;?,html,firefox,svg,Html,Firefox,Svg,我正在尝试在Firefox中使用SVG显示SVG 如果我在本地加载index.xhtml,而不是通过HTTP服务器加载,那么页面将正确加载 然而,如果我通过HTTP服务器加载,Firefox将不显示任何内容,而是通知我需要一个插件 我花了大约两个小时寻找和尝试不同的解决方案,但都没有结果。我现在非常恼火和沮丧 这是页面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/

我正在尝试在Firefox中使用SVG显示SVG

如果我在本地加载index.xhtml,而不是通过HTTP服务器加载,那么页面将正确加载

然而,如果我通过HTTP服务器加载,Firefox将不显示任何内容,而是通知我需要一个插件

我花了大约两个小时寻找和尝试不同的解决方案,但都没有结果。我现在非常恼火和沮丧

这是页面

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:svg="http://www.w3.org/2000/svg"
      xmlns:xlink="http://www.w3.org/1999/xlink">
  <head>
    <title>Daily Agera Stats</title>
  </head>

  <body>
    <table cellpadding="4" style="margin-left:auto; margin-right:auto">
      <tr>
        <td><object data="clicks_with_data_per_day_all_sources.svg" type="image/svg+xml"></object></td>
        <td><object data="clicks_with_data_per_day_criteo_only.svg" type="image/svg+xml"></object></td>
        <td><object data="impressions_per_day_with_data.svg" type="image/svg+xml"></object></td>
        <td><object data="impressions_per_day_with_data_from_clickers.svg" type="image/svg+xml"></object></td>
      </tr>

      <tr>
        <td><object data="referrer_urls.svg" type="image/svg+xml"></object></td>
        <td><object data="conversions_per_day_with_data.svg" type="image/svg+xml"></object></td>
        <td><object data="conversions_per_day_with_data_from_clickers.svg" type="image/svg+xml"></object></td>
        <td></td>
      </tr>
    </table>
  </body>
</html>

每日阿格拉统计
请注意,WWW服务器(lighttpd)已配置为将.xhtml作为“application/xhtml+xml”服务

鉴于页面离线工作,我猜这是某种MIME问题。完全缺乏有意义的文档或错误消息或任何可能被认为是直觉的解决方案是令人讨厌的。< /P> SVG由GnuPlot生成,非常长。头部看起来像这样

<?xml version="1.0" encoding="utf-8"  standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg 
 width="320" height="256" 
 viewBox="0 0 320 256"
 xmlns="http://www.w3.org/2000/svg"
 xmlns:xlink="http://www.w3.org/1999/xlink"
>

<title>Gnuplot</title>
<desc>Produced by GNUPLOT 4.6 patchlevel 0 </desc>

Gnuplot
由GNUPLOT 4.6 patchlevel 0制作

非常感谢您的帮助。

我找到了答案

尽管在标记中指定了MIME类型,但还必须将HTTP服务器配置为为.svg提供该MIME类型

当然,我几乎在一开始就看到了这一点,但我认为-哈因为我实际上是在指定类型,所以浏览器知道该怎么做


如果浏览器忽略了type属性,那么type属性的意义何在?

type属性的意义在于允许浏览器在知道无法处理该类型时跳过对资源的请求-这是一个提示,而不是权威性语句。服务器应始终配置为返回所有资源的正确
内容类型,如果浏览器尝试使用标记中指定的内容类型来解释服务器上的随机内容类型,它将为发送精心编制的文件打开许多可能性,从而在为其他文件类型设计的代码中触发安全漏洞。@Kevin:hmm;现在我想起来了,服务器确实返回了一个类型——它被配置为在没有其他匹配的情况下返回默认类型。@robertc这不是“如果”——浏览器确实猜测是HTML(作为对错误配置的服务器的反应),并且由于这些浏览器的存在,存在安全隐患。