我在我的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中绑定的数据,为什么不会加载?
以下是我的目录:
答案 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>