【问题标题】:Image is not shown with V-FOR VUEV-FOR VUE 不显示图像
【发布时间】:2019-09-17 17:08:02
【问题描述】:

我正在使用 VUE,当使用 V-FOR 时,我尝试显示图像,但它没有显示它们。我使用 V-FOR 遍历的文件是一个简单的 JSON,结构如下:

[
    {
        "id": 1,
        "name": "Lavandería",
        "img": "../assets/img/icons/rinse.png"
    },
    {
        "id": 2,
        "name": "Tintorería",
        "img": "../assets/img/icons/shirt-2.png"
    },
    {
        "id": 3,
        "name": "Planchado",
        "img": "../assets/img/icons/iron.png"
    },
    {
        "id": 4,
        "name": "Otros",
        "img": "../assets/img/icons/fashion.png"
    }
]

我通过以下方式完成它:

<div class="item-servicios-select" v-for="item in services" :key="item.id">
    <div class="card select-item">
        <div class="card-content service-content">
            <div class="service-icon">
                <img class="responsive-img" :src="item.img" alt="">
                {{ item.name }}
            </div> 
        </div>
    </div>
</div> 

并且发生了不显示图像的上述错误。但是,如果我在不使用 VUE 的情况下对图像路径进行步进,则可以正常工作:

<div class="item-servicios-select">
    <div class="card select-item">
        <div class="card-content service-content">
            <div class="service-icon">
                <img class="responsive-img" src="../assets/img/icons/rinse.png" alt="">
                TEST
            </div> 
        </div>
    </div>
</div> 

附加图片以显示错误。

谢谢。

【问题讨论】:

  • 也许是个愚蠢的问题,但来自 API 的图像是否在同一主机上?
  • 是同一个项目的JSON文件,我在本地工作

标签: javascript vue.js


【解决方案1】:

调用方法并要求图像作为返回值:

<template>
  ...
  <img class="responsive-img" :src="getImage(item)" alt="">
  {{ item.name }}
  ...
</template>
<script>
  ...
  methods: {
    getImage(item) {
      return require(item.img);
    }
  }
  ...
</script>

【讨论】:

  • 尝试时,它向我显示以下错误:渲染错误:“错误:找不到模块'../assets/img/icons/rinse.png'”
  • @OscarDev 你有一个能够加载图片的 webpack 加载器吗?比如file-loader?
  • 如果有人遇到问题,我需要硬编码从根目录开始的路径:stackoverflow.com/a/37228426/4346956
【解决方案2】:

根据您处理资产的方式,您可能需要导入图片:

<template>
  <!-- ... -->
    <img class="responsive-img" src="myImage" alt="">
  <!-- ... -->
</template>

<script>
import myImage from '../assets/image.png';
// ...
</script>

【讨论】:

  • 问题是当有很多来自某些 API 的图像时
  • 啊,完全错过了。我将火车的噪音归咎于早上通勤。 ;)
猜你喜欢
  • 2020-06-22
  • 1970-01-01
  • 2019-01-21
  • 2018-11-08
  • 1970-01-01
  • 1970-01-01
  • 2019-11-28
  • 2021-02-20
  • 1970-01-01
相关资源
最近更新 更多