【问题标题】:How to load dynamic image from assets folder in NuxtJS如何从 NuxtJS 中的资产文件夹加载动态图像
【发布时间】:2020-10-08 07:43:52
【问题描述】:

我有两个问题:

  1. 如果我在 src 中使用变量:

我会在网络上得到这个链接,但不完全是:

http://localhost:3000/~/assets/product/image/bg.png
  1. 类似于第一个问题。 我想在 head() 方法中使用动态 css 文件:

    导出默认{ 头 () { 常量样式 = this.$cookie.get('app_style') 返回 { 关联: [ { rel: '样式表', href: ~/assets/${style}.css } ] } } }

【问题讨论】:

  • 你能分享一下你是如何添加图片的吗?
  • 对不起,我在帖子中添加了,但没有显示。我显示图像的示例:
  • 我使用您提供的代码 sn-p 添加了一个答案。我希望这会有所帮助。

标签: vue.js nuxtjs


【解决方案1】:

要在资产文件夹中加载动态图像,您可以使用require 告诉webpack 要加载哪个图像,就像这样。在您的模板中,您可以执行以下操作:

<img :src="require(`../assets/img/${folderType}/bg1.png`)" />

注意:假设 folderType 在您的脚本部分中定义

您可以将 require 语句提取到计算属性中(将使您的模板更清晰)。就像这样:

export default {
  // ...
 data() {
  return {
   folderType: 'folderTypeGoesHere'
}
},
  computed: {
    imagePath () {
      return require(`../assets/img/${this.folderType}/bg1.png`) // the module request
    }
  }
}

然后在您的模板中使用:

<img :src="imagePath" />

对于您的第二个问题,您可以解决不使用波浪号 ~ 别名,而只使用相对路径,就像我在上面的图像路径示例中所做的那样。

【讨论】:

  • 之前我试过你的方法,但是在开发工具->网络中查看时,我看到了一个路径请求:[object%20Object]。不知道这样会不会影响性能还是正确?
  • 嗨@AlberZ,您找到有关[object% 20Object] 问题的任何解决方案了吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-27
  • 1970-01-01
  • 2019-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-28
相关资源
最近更新 更多