如何将img src绑定到Vue中的数据

时间:2018-02-18 01:38:44

标签: javascript html image webpack vue.js

我在我的vue webpack脚本中有以下内容:

<script>
  export default {
    data () {
      return {
        repos: [
          {name: 'test1', src: '../assets/logo.png'},
          {name: 'test2', src: '../assets/underscore.png'},
           ...
        ]
      }
    }
  }
</script>

然后在我的html中,我试图将本地src元素绑定到img,但我无法让它工作。这是我的html的样子:

<div v-for="repo in repos" :key="repo.name">
  <img :src="repo.src" />
</div>

当我的img源不是数据绑定时,它可以正常工作:

<img :src="../assets/logo.png" />

如果我的本地图片是Vue中绑定的数据,为什么不会加载?

以下是我的目录:

enter image description here

2 个答案:

答案 0 :(得分:13)

如果您正在使用vue-cli,则必须记住所有内容都是作为模块处理的,甚至是图像。如果路径在JS中是相对的,则需要使用require,如下所示:

{ name: 'test1', src: require('../assets/logo.png') }

您可以在此处找到有关此内容的更多详细信息:http://vuejs-templates.github.io/webpack/static.html

答案 1 :(得分:4)

只需将img src绑定到数据,只需提供文件地址即可:

<img v-bind:src="require('../image-address/' + image data)" />

下面的

示例显示 ../ assets / logo.png:

<template>
          <img v-bind:src="require('../assets/' + img)" />
</template>

<script>
export default {
  data: function() {
    return {
      img: "logo.png"
    };
  }
};
</script>