美文网首页
Vue在data中引入图片路径【动态引入】

Vue在data中引入图片路径【动态引入】

作者: 时间走了光 | 来源:发表于2019-07-18 10:52 被阅读0次

背景

在Vue项目中通过data设置图片路径,然后在template中引入后页面无法显示图片。
直接在页面用相同的路径引入图片,可以显示,发现页面输出如下图:

第一条:通过data引入页面的输出
第二条:同样的路径再页面直接引用

结论:在Vue里动态生成的路径无法被url-loader解析到,所以造成图片不能被解析。

思路

1、设置图片的动态路径为静态的;
2、通过import引入图片路径;
3、作为背景图片引入;

步骤

思路一:设置图片为静态路径

直接将你的图片源文件放在项目目录的static文件夹里【cli3是public文件夹里面】,然后正常引入图片路径就可以了。

Vue cli3的静态路径

template代码:

<template>
<div>
    <img :src="imgList"/>
</div>
</template>

script代码:

export default {
  name: 'success',
  data () {
    return {
      imgList: '../../public/img/down.gif'   
    }
  }
}

思路二:通过import引入图片路径

图片再项目中所在位置 script引入的代码,Template中引入同思路一

思路三:采用背景图方法,通过data将图片源路径引入,利用内联样式

这里要用引入的方式,否则url-loader无法解析到

Template中的代码部分
data () {
    return {
      importStyle: {
        // +号后面为背景的其他地方填充为红色,图片的位置
        background: `url(${require('@/assets/images/icon/project.png')})` + 'red no-repeat left center'
      }
}
}

需要注意的是:在Vue里图片是通过v-bind绑定src属性的,所以template模板上的img标签并不是src="",而是v-bind:src=""或简写为:src="",这里一定要注意,如果写错了,无论如何都无法通过data正常引入图片了。

相关文章

网友评论

      本文标题:Vue在data中引入图片路径【动态引入】

      本文链接:https://www.haomeiwen.com/subject/mxeklctx.html