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

Nuxt 3:如何通过object标签使用assets目录中的SVG文件

Nuxt3 中用 object 标签引用 assets 目录 SVG 的官方解决方法

Nuxt3 默认仅自动处理 img、video 等常见标签的资源路径,但 object 标签的 data 属性不在自动转换列表中,导致 ~/assets 路径无法被解析。以下是几种官方支持的实现方式:

方法一:使用 useAsset 工具函数

通过 Nuxt 提供的 useAsset 手动解析资源路径,绑定到 data 属性上:

<template>
  <object :data="useAsset('~/assets/icons/info-circle-solid.svg')" type="image/svg+xml" />
</template>

方法二:将 SVG 作为组件导入

直接把 SVG 文件当作 Vue 组件导入使用,这种方式还能方便地操作 SVG 内部元素:

<template>
  <InfoCircleSolid />
</template>

<script setup>
import InfoCircleSolid from '~/assets/icons/info-circle-solid.svg?component'
</script>

方法三:扩展自动转换的属性列表

在 nuxt.config.ts 中配置 Vite,让 Nuxt 自动处理 object 标签的 data 属性:

export default defineNuxtConfig({
  vite: {
    vue: {
      template: {
        transformAssetUrls: {
          object: ['data']
        }
      }
    }
  }
})

配置完成后,即可像使用 img 标签一样直接写路径:

<object data="~/assets/icons/info-circle-solid.svg" type="image/svg+xml" />

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 22:27:11