vue中img的src绑定

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue中img的src绑定相关的知识,希望对你有一定的参考价值。

参考技术A 在平常的处理中,img的src通常采用相对路径的方式来指定,然而在Vue中通过‘:src’动态绑定时不能如此,图片会加载失败。
也就是说,静态结构时,图片地址这样设置就可以正常显示:

而动态结构时,这样就不行

注意如果写成了

那就更加的错误了

这是因为网页会把根域作为相对路径的根目录,然而我们文件的路径是相对于项目文件的根目录的,当然就找不到了。而通过vue-cli建的文件结构中,有一个叫做static的文件夹,是存放静态文件的,这个文件夹下的文件会按照原本的结构放在网站根目录下。这时再使用‘/static.......’这样的路径就可以访问这些静态文件了。

第二种办法是使用require()包裹相对路径
html部分:

js部分:

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

【中文标题】如何将img src绑定到Vue中的数据【英文标题】:How to bind img src to data in Vue 【发布时间】:2018-07-28 14:16:32 【问题描述】:

我的 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 中绑定了数据,为什么它们不会加载?

这是我的目录的样子:

【问题讨论】:

检查元素时,src 中的内容是什么? ../assets/logo.png repo 名称是否唯一?你在这里显示了两次“测试”,你将它用于:key 这是我刚刚修正的一个错字。存储库名称是唯一的。我之前使用了一个 id,但为了在这个例子中简洁起见,我改变了它。 您应该发布一个答案,详细说明您是如何解决问题的。这样,如果其他人被卡住了,他们就可以解开。 【参考方案1】:

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

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

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

【讨论】:

【参考方案2】:

仅用于绑定img src到数据,只需要文件地址

&lt;img v-bind:src="require('../image-address/' + image data)" /&gt;

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

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

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

【讨论】:

以上是关于vue中img的src绑定的主要内容,如果未能解决你的问题,请参考以下文章

从 Vue.js 中的 props 传递和绑定 img src

vue中img的src动态赋值(本地图片的路径)

vue中img的src动态赋值(本地图片的路径)

Vue.js props img src 与 webpack 别名 (@) 绑定

vue绑定动态img标签的src地址

vue中怎么动态添加img的路径