vue-cli3+bootstrap-vue加载本地图片失败

在本地模拟加载图片,如果不绑定src是可以显示图片的:

<b-img-lazy width="30" height="30" alt="ico" src="~@/assets/img/logo.jpg"></b-img-lazy>

但是,绑定数据后就不行了:

<b-img-lazy width="30" height="30" alt="ico" :src="item.logo"></b-img-lazy>

可以说使用绝对路径且不进行数据绑定是可以的,我的地址并没错。看了bootstrap-vue官网给的解决方案,我照做了也重启服务了但仍没有作用:
方案链接:https://bootstrap-vue.js.org/...

module.exports = {
    chainWebpack: config => {
      config.module
        .rule('vue')
        .use('vue-loader')
        .loader('vue-loader')
        .tap(options => {
          options.transformAssetUrls = {
            img: 'src',
            image: 'xlink:href',
            'b-img': 'src',
            'b-img-lazy': ['src', 'blank-src'],
            'b-card': 'img-src',
            'b-card-img': 'src',
            'b-card-img-lazy': ['src', 'blank-src'],
            'b-carousel-slide': 'img-src',
            'b-embed': 'src'
          }
          return options
        })
    }
  }

或者这样修改后也无效:

<b-img-lazy width="30" height="30" alt="ico" :src="'assets/'+item.logo"></b-img-lazy>

我的图片放在src/assets/img里,无解了,网上也找不到解决这种问题答案啊
帮忙看一下,谢谢了

阅读 3.4k
1 个回答

item.logo里面是这么个东西,他也不知道你要干嘛呀。

你可以尝试img = require(@/assets/img/logo.jpg) 然后:src="img"使用你引入图片

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题