我正在尝试使用Firefox中的< object>来显示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问题。完全没有有意义的文档或错误消息或任何人可能认为是直观的解决方案是令人难以置信的烦恼。
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>
任何帮助深表赞赏。
答案 0 :(得分:3)
我找到了答案。
DESpeite在&lt; object&gt;中指定的MIME类型标记,您还必须配置HTTP服务器为.svg。
提供该MIME类型我当然在开始的时候看过这个,但我想 - 哈! - 因为我实际上是在指定类型,所以浏览器会知道该怎么做。
如果浏览器忽略了类型属性,那到底是什么意思呢?