SVG не отображается в теге img в Safari
проще говоря, у меня есть SVG-графика, встроенная в HTML, которая отказывается отображаться в Safari (хотя она отлично работает в Chrome, Firefox и других браузерах).
для этого я использую следующую разметку:
<img alt="grapefruit logo" src="/assets/better-gf-logo_red.svg" />
вот живая ссылка на страницу, где SVG не отображается. Логотип fruit в верхнем левом углу не отображается в Safari:https://grapefruit.cs.rpi.edu/.
Я проверил, что следующая строка также присутствует в моем nginx mime.types
:
image/svg+xml svg svgz;
однако я знаю, что проблема, вероятно, не связана с типами mime, так как SVG не отображается в Safari на моей машине разработки (я тестировал несколько веб-серверов). Я также попытался отобразить сам файл SVG в Safari, и это выглядит нормально. Элемент image имеет правильный размер и модель коробки, но не отображает никакого содержимого.
2 ответов
получается, что <img src="image.svg">
не будет работать в Safari, я попытался с помощью <object>
и это сработало. Попробуйте это:демо jsBin
<object
type="image/svg+xml"
height="70"
width="150"
data="/assets/better-gf-logo_red.svg">
</object>
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/object
прежде всего ваше изображение не SVG
вы можете открыть его в текстовом редакторе и увидеть - это PNG (не вектор), сохраненный только как SVG
... width="1640" height="422" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgA...
проверьте здесь http://jsbin.com/kayiwe/