HTML <base>
元素用于说“解析所有相对URL,而不是相对于此页面,而是相对于新位置”。在您的情况下,您已经告诉它可以相对于带有HTML页面的目录进行解析。
SVG marker-mid="url(…)"
属性是FuncIRI参考。当使用这样的值时url(#foo)
,通常会相对于当前页面解析相对IRI,查找具有foo
id的元素。但是,当您使用时<base>
,会更改其外观。
要解决此问题,请使用更好的值。由于您的基本引用是当前目录,因此您可以简单地使用当前文件的名称:
<line … marker-mid="url(this_page_name.html#arrow)" />
如果您的<base>
href不同于您显示的href,例如:
<base href="http://other.site.com/whee/" />
那么您将需要使用绝对href,例如
<line … marker-mid="url(http://my.site.com/this_page_name.html#arrow)" />