首页 > 技术文章 > vue-lazyload使用图片路径的坑!!

qdlhj 2019-06-21 11:20 原文

1、在使用vue懒加载加载图片的时候,发现在main.js引入图片时,发现图片路径找不到出错!!!

使用vue-cli脚手架快速生成的框架中,
src**同级目录**中有static文件夹
src**子文件夹**中有assets文件夹
在使用vue-lazyload,设置error或loading属性的图片路径时,

图片在assets文件夹,就需要使用require()进行引入。

Vue.use(lazyLoad, {
  error: require('./assets/img/default-photo.png'),
  loading: require('./assets/img/default-photo.png')
})

图片在static文件夹,就可以直接写路径了

Vue.use(lazyLoad, {
  error: require('../static/img/default-photo.png'),
  loading: require('../static/img/default-photo.png')
  
})

vue-lazyload是在main.js文件中引入,不会被webpack进行编译,src中的文件会被webpack编译,包括assets,assets文件夹中的图片地址,会在编译过程中改变。因此vue-lazyload无法正确获得图片地址,就不能显示图片了。

推荐阅读