Я пытаюсь сделать маркеры унифицированными для множества изображений SVG.Моя проблема в том, что я не могу заставить работать внешние ссылки в определениях маркеров.Это может быть связано с вопросом Как правильно ссылаться на внешний svg-файл в svg? , но ссылка по-прежнему отсутствует.
Я сделал небольшой пример, чтобы продемонстрировать свою проблему:
b.svg (на который ссылаются):
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
<defs>
<circle id="b" r="6" stroke="black" fill="green" />
<marker id="b_end"
orient="auto"
style="overflow:visible">
<use xlink:href="#b" />
</marker>
</defs>
</svg>
a.svg (пытается ссылаться на b.svg):
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
<defs>
<circle id="a" r="6" stroke="black" fill="yellow" />
<marker id="a_end"
orient="auto"
style="overflow:visible">
<use xlink:href="#a" />
</marker>
<marker id="b_end"
orient="auto"
style="overflow:visible">
<use xlink:href="b.svg#b" />
</marker>
</defs>
<path d="m 10,10 20,20" style="marker-end:url(#a_end)" stroke="black" />
<path d="m 40,10 20,20" style="marker-end:url(#b_end)" stroke="black" />
<path d="m 70,10 20,20" style="marker-end:url(b.svg#b_end)" stroke="black" />
</svg>
Как видите, я ссылался на маркер дляпервая строка через внутренний идентификатор (на самом деле две, так как у маркера тоже есть ссылка).Это работает нормально.
Я использовал определение внутреннего маркера с внешним путем для второй строки.Не работает(Строка отображается с наклоном, маркер - нет.)
Я использовал внешний маркер в третьей строке.Это также не работает.
Проблема может заключаться в том, что внешний контент отсутствует в DOM хоста - по крайней мере, при разрешении ссылки в стиле.
ОК, ночто я могу с этим поделать?Как я могу ссылаться на внешние элементы для маркеров в SVG?