You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

仅内嵌SVG可正常显示?三种SVG展示方式故障排查求助

SVG三种展示方式仅一种生效的问题排查

我尝试通过三种不同方式展示同一张SVG:

import "./styles.css";
import { SVGString } from "./svgString";

document.getElementById("app").innerHTML = `
<h1>SVG</h1>
<div class="pics">
  ${SVGString}
  <img src="data:image/svg+xml,${encodeURIComponent(SVGString)}"></img>
  <img src="public/file.svg"></img>
</div>
`;

但只有第一种直接嵌入字符串的方式可以正常显示,另外两种方式虽语法看似正确却无法生效。我怀疑是SVG本身存在问题,以下是svgString.js和file.svg中的SVG标记:

<svg xmlns="http://www.w3.org/2000/svg" width="350" height="350" viewBox="0 0 350 350">
  <rect x="0" y="0" width="350" height="350" fill="#171512" />
  <g transform="translate(62.5,75)">
    <g>
      <rect x="0" y="0" width="56.25" height="56.25" rx="50%" fill="#8C69EC" />
      <rect x="28.125" y="28.125" width="28.125" height="28.125" fill="#8C69EC" />
      <rect x="0" y="28.125" width="28.125" height="28.125" fill="#8C69EC" />
    </g>
    <g>
      <rect x="168.75" y="0" width="56.25" height="56.25" rx="50%" fill="#8C69EC" />
      <rect x="168.75" y="28.125" width="28.125" height="28.125" fill="#8C69EC" />
      <rect x="196.875" y="28.125" width="28.125" height="28.125" fill="#8C69EC" />
    </g>
    <g>
      <rect x="0" y="56.25" width="56.25" height="56.25" rx="50%" fill="#8C69EC" />
      <rect x="0" y="56.25" width="28.125" height="28.125" fill="#8C69EC" />
      <rect x="28.125" y="56.25" width="28.125" height="28.125" fill="#8C69EC" />
      <rect x="28.125" y="84.375" width="28.125" height="28.125" fill="#8C69EC" />
    </g>
    <g>
      <rect x="168.75" y="56.25" width="56.25" height="56.25" rx="50%" fill="#8C69EC" />
      <rect x="168.75" y="56.25" width="28.125" height="28.125" fill="#8C69EC" />
      <rect x="168.75" y="84.375" width="28.125" height="28.125" fill="#8C69EC" />
      <rect x="196.875" y="56.25" width="28.125" height="28.125" fill="#8C69EC" />
    </g>
    <g>
      <rect x="56.25" y="56.25" width="56.25" height="56.25" rx="50%" fill="#8C69EC" />
      <rect x="56.25" y="56.25" width="28.125" height="28.125" fill="#8C69EC" />
      <rect x="56.25" y="84.375" width="28.125" height="28.125" fill="#8C69EC" />
      <rect x="84.375" y="56.25" width="28.125" height="28.125" fill="#8C69EC" />
      <rect x="84.375" y="84.375" width="28.125" height="28.125" fill="#8C69EC" />
    </g>
    <g>
      <rect x="112.5" y="56.25" width="56.25" height="56.25" rx="50%" fill="#8C69EC" />
      <rect x="112.5" y="56.25" width="28.125" height="28.125" fill="#8C69EC" />
      <rect x="112.5" y="84.375" width="28.125" height="28.125" fill="#8C69EC" />
      <rect x="140.625" y="56.25" width="28.125" height="28.125" fill="#8C69EC" />
      <rect x="140.625" y="84.375" width="28.125" height="28.125" fill="#8C69EC" />
    </g>
    <g>
      <rect x="56.25" y="168.75" width="56.25" height="56.25" rx="50%" fill="#8C69EC" />
      <rect x="84.375" y="168.75" width="28.125" height="28.125" fill="#8C69EC" />
      <rect x="84.375" y="196.875" width="28.125" height="28.125" fill="#8C69EC" />
    </g>
    <g>
      <rect x="112.5" y="168.75" width="56.25" height="56.25" rx="50%" fill="#8C69EC" />
      <rect x="112.5" y="168.75" width="28.125" height="28.125" fill="#8C69EC" />
      <rect x="112.5" y="196.875" width="28.125" height="28.125" fill="#8C69EC" />
    </g>
    <g>
      <rect x="0" y="53.125" width="56.25" height="6.25" fill="#8C69EC" />
      <rect x="168.75" y="53.125" width="56.25" height="6.25" fill="#8C69EC" />
      <rect x="165.625" y="56.25" width="6.25" height="56.25" fill="#8C69EC" />
      <rect x="53.125" y="56.25" width="6.25" height="56.25" fill="#8C69EC" />
      <rect x="109.375" y="56.25" width="6.25" height="56.25" fill="#8C69EC" />
      <rect x="109.375" y="168.75" width="6.25" height="56.25" fill="#8C69EC" />
    </g>
    <g>
</svg>

请求协助排查另外两种SVG展示方式失效的原因。


内容的提问来源于stack exchange,提问作者chocojunkie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 20:57:38