我想导入一个充满SVG资源的目录,并在VueJS组件中引用它们作为数组。如下所示:
//LevelComponent.vue
<template>
<div v-html="image"></div>
</template>
<script>
import * as levels from '@/assets/levels/*.svg'
export default {
name: "Level",
data() {
return {
image: ''
}
},
methods: {
setLevel(levelNumber) {
this.level = levels[levelNumber];
}
}
}
</script>
由于VueJS / Webpack如何处理资产路径,上述内容显然不起作用:
Module not found: Error: Can't resolve '@/assets/levels/*.svg'
我们目前单独加载SVG,但每次目录内容发生变化时,我们的代码都需要更新:
import level1 from '@/assets/levels/1.svg'
import level2 from '@/assets/levels/2.svg'
import level3 from '@/assets/levels/3.svg'
除了上述错误,我很确定我会以错误的方式解决这个问题。采用这种方法的正确方法是什么?我应该提一下,我们目前在Webpack中使用svg-inline-loader
来加载各个SVG。