Notatka xlink:hrefzostała wycofana , po prostu użyj hrefzamiast niej, np
<svg viewBox="0 0 512 512">
<image width="512" height="512" href="external.svg"/>
</svg>
viewBox, widtha heightwartości (w tej odpowiedzi) służą jedynie celom ilustracyjnym, odpowiednio dostosuj układ ( czytaj więcej ).
Od <image> akcji podobnej specyfikacji , co <img>, co oznacza, że nie obsługuje SVG stylizacji, jak wspomniano w odpowiedzi Christiaan użytkownika . Na przykład, jeśli mam następującą linię css, która ustawia kolor kształtu svg na taki sam jak kolor czcionki,
svg {
fill: currentColor;
}
Powyższy styl nie miałby zastosowania, gdyby <image>został użyty. W tym celu musisz użyć <use>, jak pokazano w odpowiedzi Nicka .
Uwaga id="layer1"i href="OTHERFILE.svg#layer1"wartości w jego odpowiedzi są obowiązkowe .
Oznacza to, że musisz dodać idatrybut do zewnętrznego pliku svg, więc musisz hostować (zmodyfikowany) zewnętrzny plik svg samodzielnie (twoja strona internetowa) lub gdzie indziej. Wynikowy zewnętrzny plik SVG wygląda następująco (zwróć uwagę, gdzie umieściłem id):
<svg id="logo" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path d="..."/>
</svg>
Wartość id może być dowolna, w tym przykładzie używam „logo”.
Aby osadzić ten plik svg,
<svg viewBox="0 0 512 512">
<use href="edited-external.svg#logo"/>
</svg>
Jeśli używasz powyższego svg jako wbudowanego w swoim html, nie potrzebujesz atrybutu xmlns (przynajmniej tego, co wiem z svgo ).