Webpack 不解析 JS 变量提供的路径
Webpack not resolving paths supplied by JS variable
我正在使用 vue 和 ionic 制作一个应用程序,但是在尝试加载资产时路径没有解析。
<template>
<div id="index">
<img :src="image.src" v-for="image in images">
</div>
</template>
<script>
export default {
name: 'Inicio',
data() {
return {
images: [
{src: '@/assets/xxx.png'},
{src: '@/assets/xxxx.png'},
{src: '@/assets/xxx.png'}
]
}
}
}
</script>
src 属性中的路径与在 var '@/assets/xxx.png'
中键入的路径类似。
但如果我直接这样做,通过手动在图像中输入 src,例如 <img src="@/assets/xxx.png">
它会正确加载图像。
您不能使用 v-for
引用静态资源,因为 webpack 需要在运行前重写静态路径。 image.src
的值只会在运行时读取并解析为模板,因此不会从 webpack 编译将相对路径转换为 bundle 中的真实路径。
一种解决方案是使用 require()
:
<template>
<div id="index">
<img :src="image.src" v-for="image in images">
</div>
</template>
<script>
export default {
name: 'Inicio',
data() {
return {
images: [
{src: require('@/assets/xxx.png') },
{src: require('@/assets/xxxx.png') },
{src: require('@/assets/xxx.png') }
]
}
}
}
</script>
我正在使用 vue 和 ionic 制作一个应用程序,但是在尝试加载资产时路径没有解析。
<template>
<div id="index">
<img :src="image.src" v-for="image in images">
</div>
</template>
<script>
export default {
name: 'Inicio',
data() {
return {
images: [
{src: '@/assets/xxx.png'},
{src: '@/assets/xxxx.png'},
{src: '@/assets/xxx.png'}
]
}
}
}
</script>
src 属性中的路径与在 var '@/assets/xxx.png'
中键入的路径类似。
但如果我直接这样做,通过手动在图像中输入 src,例如 <img src="@/assets/xxx.png">
它会正确加载图像。
您不能使用 v-for
引用静态资源,因为 webpack 需要在运行前重写静态路径。 image.src
的值只会在运行时读取并解析为模板,因此不会从 webpack 编译将相对路径转换为 bundle 中的真实路径。
一种解决方案是使用 require()
:
<template>
<div id="index">
<img :src="image.src" v-for="image in images">
</div>
</template>
<script>
export default {
name: 'Inicio',
data() {
return {
images: [
{src: require('@/assets/xxx.png') },
{src: require('@/assets/xxxx.png') },
{src: require('@/assets/xxx.png') }
]
}
}
}
</script>