【问题标题】:Webpack not resolving paths supplied by JS variableWebpack 不解析 JS 变量提供的路径
【发布时间】:2019-04-26 08:39:03
【问题描述】:

我正在使用 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,例如 &lt;img src="@/assets/xxx.png"&gt; 它会正确加载图像。

【问题讨论】:

标签: javascript vue.js webpack ionic4


【解决方案1】:

你不能使用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>

演示沙盒:https://codesandbox.io/s/811px8kn88

【讨论】:

    猜你喜欢
    • 2019-11-14
    • 1970-01-01
    • 2017-06-29
    • 2017-11-02
    • 2018-09-10
    • 1970-01-01
    • 1970-01-01
    • 2017-12-15
    • 2015-02-14
    相关资源
    最近更新 更多