英文:
Import SVG file in Astro and use it without the <img /> tag
问题
有没有一种方法可以在 Astro 文件中直接使用 SVG 文件,而不使用<img />
标签。我想要这样的效果:
import Logo from "./logo.svg"
然后像这样使用它:
<Logo />
我尝试过这样做,但没有成功。
英文:
Is there a way to use and SVG file in an Astro file directly without using the <img />
tag. I want something like this:
import Logo from "./logo.svg"
and then use it like this:
<Logo />
I tried that doing it like that but it didn't work.
答案1
得分: 11
你可以在文件扩展名后添加?raw
来更改导入。然后,使用<Fragment set:html={Logo} />
来内联CSS。请参考:这篇文章 和 Astro文档。
英文:
You can change the import to add ?raw
after the file extension. Then, use <Fragment set:html={Logo} />
to inline the css. See: this post and the Astro docs
答案2
得分: 1
我最终使用了一个名为astro-icon
的npm包,我真的很喜欢它,它解决了我的问题。
首先,我在src/下创建了一个名为icons的文件夹,并将我的图标放在其中。然后像这样使用它:
import { Icon } from "astro-icon"
<Icon name={icon_name} />
英文:
I ended up using an npm package called astro-icon
which I really liked and it solved my problem.
First, I created a folder name icons in src/ and put my icons inside. Then use it like this:
import { Icon } from "astro-icon"
<Icon name={icon_name} />
答案3
得分: 1
你可以使用这样的代码而无需任何插件。
---
import loaderEyes from "svgs/loader-eyes.svg?raw";
---
<div class="loader__eyes-container">
<Fragment set:html={loaderEyes} />
</div>
英文:
You can use code like this without any plugin.
---
import loaderEyes from "svgs/loader-eyes.svg?raw";
---
<div class="loader__eyes-container">
<Fragment set:html={loaderEyes} />
</div>
答案4
得分: 0
我已经使用了 "astro-icon" 包。您可以在他们的文档中查看如何在您的HTML中加载本地SVG。
基本上只需:
- 在src目录内创建一个图标文件夹。
- 在src/icons内创建新的SVG文件,例如 "logo.svg"。
- 您现在可以在Astro文件中使用
<Icon name="logo" />
来加载您的SVG。
在这里阅读更多信息:
https://github.com/natemoo-re/astro-icon#local-icon-packs
Astro关于资产的文档:
https://docs.astro.build/en/guides/assets/#move-your-images-to-srcassets
英文:
I have used "astro-icon" package. You can see in their docs how to load local svgs in your html.
Basically just:
- Create a icon folder inside src directory.
- Inside src/icons create new svg file. ie. "logo.svg"
- You can now use
<Icon name="logo" />
in astro files to load your svg.
Read more here:
https://github.com/natemoo-re/astro-icon#local-icon-packs
Astro docs on assets:
https://docs.astro.build/en/guides/assets/#move-your-images-to-srcassets
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论