首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vue cli 3项目,图像路径中的动态src不工作。

Vue cli 3项目,图像路径中的动态src不工作。
EN

Stack Overflow用户
提问于 2019-02-01 13:18:02
回答 2查看 19.2K关注 0票数 10

我在vue组件中引用一个图像url,如

代码语言:javascript
复制
<img alt="Vue logo" src="~statics/reports/logo.png">

这工作

但在尝试的同时

代码语言:javascript
复制
<img alt="Vue logo" :src="getURL()">


data() {
    return { imgPath: "~statics/reports/logo.png" };
  },

  methods: {

    getURL() {
        // 

      // console.log(path)
      return (this.imgPath)
    }
  },

它失败了

我的文件夹结构是

在第一种情况下,路径被解析为

代码语言:javascript
复制
http://localhost:8081/img/logo.82b9c7a5.png

并由dev服务器自动提供服务。

路径在第二种情况下没有解析,它仍然是http://localhost:8081/~statics/reports/logo.png

我使用vue cli 3生成webpack的默认配置。

我不想对所有的图像使用相对路径,比如./映像/,因为它会使其更冗长。我尝试过要求(PathVariable)也不能工作--当url是动态的时,请帮助解析img路径,例如,资产名称来自服务器,我在方法或计算中附加了一个路径,并使用:src动态绑定来服务它。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-01 14:22:11

第二种方法失败了,因为"~“试图从node_modules获得这个资产。您可以在这里阅读有关处理资产的更多信息:https://cli.vuejs.org/guide/html-and-static-assets.html#relative-path-imports

要修复它,只需使用如下所示的require:

代码语言:javascript
复制
data() {
  return {
    imgPath: require('@/statics/logo.png')
  }
}

直接在模板中的..or:

代码语言:javascript
复制
<img alt="Vue logo" :src="require('@/statics/logo.png')">
票数 27
EN

Stack Overflow用户

发布于 2020-11-02 19:38:12

对于Vue 3项目,可以使用以下方法:

代码语言:javascript
复制
<img src="./assets/logo.png" />
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54480368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档