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

Vite项目生产构建后无法读取SVG资源的解决方法

Vite生产构建后无法通过import.meta.glob获取SVG文件

我需要从项目的src/assets/svg文件夹中随机选取.svg文件,以下代码用于将文件名加载到数组中,方便后续选择单张图片:

const svgImages = [''];

function setupLibrary() {

    let modules;

    if (process.env.NODE_ENV === 'development')
        modules = import.meta.glob('/src/assets/svg/*.svg');
    else
        modules = import.meta.glob('/assets/*.svg');

    for (const path in modules) {
        svgImages.push(path);
    }
}

这段代码在开发模式下运行正常,但生产构建后无法找到文件(modules为空)。构建流程已将所有.svg文件与.js、.css文件一同放入assets文件夹。我也尝试过modules = import.meta.glob('/*.svg')等类似写法,但均未成功。我查阅过相关问题与Vite文档,都未能解决问题。

我的vite.config.ts配置如下:

// Plugins
import vue from '@vitejs/plugin-vue'
import vuetify, { transformAssetUrls } from 'vite-plugin-vuetify'

// Utilities
import { defineConfig } from 'vite'
import { fileURLToPath, URL } from 'node:url'


// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue({ 
      template: { transformAssetUrls }
    }),
    // https://github.com/vuetifyjs/vuetify-loader/tree/next/packages/vite-plugin
    vuetify({
      autoImport: true,
    }),
  ],
  define: { 'process.env': {} },
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    },
    extensions: [
      '.js',
      '.json',
      '.jsx',
      '.mjs',
      '.ts',
      '.tsx',
      '.vue'
    ],
  },
  server: {
    port: 5173,
  },
 
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 16:51:12