当属性不是 src 时如何让 Vue CLI 生成的项目替换图像 src

Posted

技术标签:

【中文标题】当属性不是 src 时如何让 Vue CLI 生成的项目替换图像 src【英文标题】:How to have Vue CLI-generated project replace image srcs when the attribute is not src 【发布时间】:2019-09-17 10:42:23 【问题描述】:

使用 Vue CLI 3.7.0 创建了一个项目并安装了 bootstrap-vue 2.0.0-rc.19。 Vue CLI 脚手架项目使用使用文件加载器的 Webpack。

在本地运行服务器时,<img src='../assets/images/test.jpg'><img src='/img/test.4d111941.jpg'> 替换。

使用 BootstrapVue 指令,<b-carousel-slide img-src='../assets/images/test.jpg'> 不会导致 URL 被缓存。

有人遇到过这个吗?想知道我是否必须覆盖 vue.config.js 中的一些 Webpack 行为。

【问题讨论】:

【参考方案1】:

需要将此添加到 vue.config.js:

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': 'img-src',
          'b-card-img-lazy': ['src', 'blank-src'],
          'b-carousel-slide': 'img-src',
          'b-embed': 'src'
        

        return options
      )
  

【讨论】:

最新的 Vue CLI 3.x bootstrap-vue 插件 (vue-cli-plugin-bootstrap-vue) 现在会自动将它添加到你的 webpack 配置中。

以上是关于当属性不是 src 时如何让 Vue CLI 生成的项目替换图像 src的主要内容,如果未能解决你的问题,请参考以下文章

如何让 Vue (vue cli 3) 正确处理 GraphQL 文件?

vue-cli3携手rollup、github-actions打造自动部署的vue组件模板(使用篇)

vue-cli生成项目后添加静态资源,第三方js库

从 CLI 生成的新 vue 3 项目的单元测试中出错

vue-cli目录结构解析

无法让 vue cli 4 找到依赖项