【问题标题】:SVG won't display in htmlSVG 不会在 html 中显示
【发布时间】:2016-09-29 22:13:14
【问题描述】:

我在使用 SVG 时遇到问题。它不会在 html 中显示。不适用于<img> 不适用于<object> 如果直接浏览到这个 SVG,我可以看到它。测试:http://angliru.nl/upload/121.svg 但当包含在内时,我只看到白色,请参阅:http://angliru.nl/test.html

我做错了什么?

我检查了这 3 种可能性,但仍然无法正常工作:

  • 您的服务器对 SVG 图像使用了错误的 MIME 类型。 (可 通过将 AddType image/svg+xml svg 添加到您的 .htaccess 文件来修复; 这里讨论的其他方法)
  • 您将 SVG 文件保存在其他位置 并且它在图标/chrome.svg 中不存在。 (尝试直接导航 到图标/chrome.svg 的 SVG 文件。它是否显示在您的 浏览器?)
  • 您保存的文件权限不足, 导致您的网络服务器无法访问该文件。 (能 通过导航到图标目录并输入 chmod 0644 来修复 chrome.svg 在命令行提示符下。)

【问题讨论】:

  • 寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码.没有明确问题陈述的问题对其他读者没有用处。请参阅:如何创建minimal reproducible example
  • 我没有错误消息。它只显示一个白页,而不是包含的 svg
  • 您的问题仍然缺少在问题本身中重现它所需的最短代码。
  • stackoverflow.com/questions/35903224/…当通过img标签显示SVG文件时,jpg不会被加载。

标签: html svg


【解决方案1】:

集成为 SVG,图像可以正常工作(运行代码 sn-p):

<svg version="1.1" id="Laag_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	width="100%" height="100%"
viewBox="265 90 311.9 495.3" enable-background="new 0 0 841.9 595.3" xml:space="preserve">
<g>
    <defs>
        <pattern id="img1" patternUnits="userSpaceOnUse" width="842" height="595">
            <image xlink:href="http://www.angliru.nl/upload/niels.jpg" x="0" y="0"
                width="842" height="595" />
        </pattern>
    </defs>
	<path d="M549.9,476.2c-3.3,0-6.1,0-8.9,0c-15.2,0-30.3-0.1-45.5,0.1c-2.3,0-5,1.3-6.8,2.9c-3.6,3-6.7,6.5-10,9.8
		c-3.2,3.1-6.4,3.3-9.5,0c-0.1-0.1-0.3-0.2-0.3-0.4c-7.5-11.2-18.1-13.6-31-12.6c-13.6,1-27.3,0.1-41,0.3c-2,0-4.4,1.1-6,2.5
		c-3.5,3-6.6,6.6-10,9.8c-3.9,3.7-7.1,4.1-10.1-0.1c-7.9-10.9-18.3-13.5-31.1-12.5c-12.8,1-25.6,0.2-38.5,0.1
		c-0.3,0-0.6-0.2-1.5-0.6c0-11.7,0-23.6,0-35.6c0-7.7,0.3-15.3-0.1-23c-0.1-2.3-1.4-5-3-6.8c-3.7-4.3-8-8-11.9-12.1
		c-3.7-3.9-3.6-6.3,0.1-10.2c0.2-0.2,0.4-0.5,0.7-0.7c12.3-8.5,16.2-20,14.5-34.8c-1.3-11,0-22.3-0.3-33.4c-0.1-2.4-1.3-5.1-2.9-7
		c-3.9-4.9-8.4-9.4-12.6-14.2c-2.5-2.9-2.3-5.6,0.5-8.3c4.1-3.9,8.3-7.7,12-12c1.6-1.8,2.8-4.6,2.8-7c0.2-16.7,0.2-33.3,0-50
		c0-2.2-1.2-4.8-2.6-6.5c-3.7-4.5-7.9-8.6-11.9-12.8c-3.5-3.8-3.4-6,0.2-9.8c2.4-2.5,4.5-5.5,7.2-7.6c6.8-4.9,7.6-11.5,7.4-19.3
		c-0.4-15.8-0.1-31.6-0.1-47.7c7.3,0,14.4,0,21.5,0c10.8,0,21.6,0.2,32.5,0.1c1.1,0,2.5-0.7,3.3-1.6c4.4-4.5,8.6-9.3,13-13.8
		c4.2-4.3,6.9-4.2,11-0.1c5.1,4.9,9.5,11.8,15.7,14.3c6.2,2.5,14.1,0.6,21.3,0.7c10.5,0,21,0.3,31.5,0c2.5-0.1,5.4-1.4,7.3-3
		c4-3.5,7.5-7.6,11.2-11.4c4.6-4.6,7.2-4.7,11.8-0.2c2.3,2.2,4.9,4.2,6.7,6.7c5,7.1,11.9,8.4,19.9,8.3c12.7-0.3,25.3,0,38,0
		c1.5,0,2.9,0,5.2,0c0,10.7,0,21,0,31.3c0,8.7-0.3,17.3-0.1,26c0,1.8,1.2,3.9,2.5,5.3c4,4.2,8.3,8.1,12.5,12.3c3.2,3.2,3,6.4,0,9.7
		c-1.5,1.6-2.8,3.3-4.6,4.6c-8.7,6.2-11.1,14.5-10.5,25c0.8,13.5,0.2,27,0.5,40.5c0,1.9,1,4.2,2.3,5.6c3.8,4.2,7.9,8.1,11.9,12.1
		c4,4,3.9,7,0,11.1c-2,2-3.7,4.4-6,6c-7.4,5.1-8.8,12.2-8.5,20.7c0.6,14.3-0.1,28.7,0.1,43c0,2.2,1.3,4.7,2.8,6.4
		c3.8,4.4,8.1,8.3,12.1,12.6c2.7,2.9,2.6,6-0.2,8.9c-3.7,3.8-7.4,7.6-11.3,11.3c-2.5,2.3-3.4,4.9-3.3,8.3
		C550,436.7,549.9,456.1,549.9,476.2z"
		fill="url(#img1)" />
</g>
</svg>

另外,您说您已检查您的服务器是否发送了正确的 MIME 类型,但您显然没有。没有发送 Content-Type 标头。

【讨论】:

  • 谢谢,但我不明白为什么它不适用于 object 或 img ?
  • 再次:因为您的服务器没有发送正确的 Content-Type 标头,因此 SVG 可能被解释为常规 HTML,不能表示为图像,而不是 SVG。
猜你喜欢
  • 1970-01-01
  • 2015-02-04
  • 2014-08-14
  • 2011-03-25
  • 2018-10-09
  • 2014-12-13
  • 2016-10-20
  • 2013-04-11
相关资源
最近更新 更多