Vue.js动态图片显示功能失效
P粉216807924
P粉216807924 2023-08-20 11:03:39
[Vue.js讨论组]

我是一个vue.js的初学者,我正在尝试动态显示图片,但在动态显示方面遇到了问题,如果我手动更改它们,它们可以正常工作。我找到了许多类似的问题,但有一些差异,没有一个能帮助我。

这是我的结构:

-src
  --assets
    ---pizza
      ----pizza-1.jpg
      ----pizza-2.jpg
    ---hamburger
      ----hamburger-1.jpg
      ----hamburger-2.jpg
    ---french-fries
      ----french-fries-1.jpg
      ----french-fries-2.jpg
 --components
 --DBjson
   ---main.json

我正在尝试创建这个循环:

`<div class="holder" v-for="restaurant in restaurants">
  <img :src="getImage(restaurant.name, restaurant.mainImage)"/>
 </div>

  export default {
name: "restaurant",
data() {
    return {
        restInfo: this.$attrs.restData,
    };
},
methods: {
    getImage(folderName, imageName) {
        let image = require.context("@/assets/");
        return image("./" + folderName + "/" + imageName);
    },
 },
};`

我的JSON文件:

{
    "id": 1,
    "name": "pizza",
    "price": "$10",
    "mainImage": "pizza-1.jpg",
    "images": ["pizza-2.jpg", "pizza-1.jpg"],
},
P粉216807924
P粉216807924

全部回复(1)
P粉798343415

getImage应该使用图像的完整相对文件路径来要求并返回图像

Vue 2.x

getImage(folderName, imageName) {
  return require(`@/assets/${folderName}/${imageName}`)
}

Vue 3.x + Vite

据我所知,Vite无法处理'@'别名用于此特定任务,所以请确保根据需要设置您的路径

getImage(folderName, imageName) {
  return new URL(`../assets/${folderName}/${imageName}`, import.meta.url).href;
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号