vue显示列表中的多张本地照片

这个示例展示了如何在Vue.js应用中使用`v-for`循环遍历书本列表,并通过`require()`函数动态加载每个书籍封面图片。图片存储在指定的目录下,同时结合`router-link`实现跳转到详细页面的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

效果:
在这里插入图片描述

1.html
bookList为书的列表其中的第i个item对应的照片为booki.jpg,
存储在…/assets/books/目录下
在这里插入图片描述

注意这里的路径不能使用{{this.id}}这种变量,且要使用require()函数并将路径断开

<div class="booksnew_card" v-for="(item,index) in bookList" :key="item.id">
        <router-link :to="{path: '/book',query:{id:item.id}}">
          <el-image
            style="width: 82%; height: 190px;margin:5px 9%"
            :src="require('../assets/books/book'+(index+1)+'.jpg')"
            fit="fill"></el-image>
          <div style="width: 86%;margin: 0px 7%">
            <a href="#" class="booksnew_text">
              {{item.name}}
            </a>
            <div class="booksnew_author">
              {{item.author}}
            </div>
          </div>
        </router-link>
 </div>

2.我所使用的数据

export default {
  name: 'GalleryBook',
  data () {
    return {
      bookList: [
        {
          id: 1,
          name: '六层楼先生 怀孕呵护指南 第十一诊室',
          author: '六层楼先生 著',
          price: 95.00,
          imgS: '../assets/books/book1.jpg'
        },
        {
          id: 2,
          name: '活着(余华代表作,精装。当当专享印签藏书票+限量赠珍藏复刻手稿)',
          author: '余华 著',
          price: 45.90,
          imgS: '../assets/books/book2.jpg'
        },
        {
          id: 3,
          name: '三体:全三册 刘慈欣代表作,亚洲“雨果奖”获奖作品!',
          author: '刘慈欣 著',
          price: 90.00,
          imgS: '../assets/books/book2.jpg'
        },
        {
          id: 4,
          name: '我的第一套中国神话故事(全彩12册)',
          author: '步印编辑部 改编',
          price: 154.40,
          imgS: '../assets/books/book4.jpg'
        }
      ]
    }
  },
  methods: {
  },
  created () {
  }
}
### 解决 Spring Boot 与 Vue 集成时图片无法显示的问题 #### 1. 前端配置调整 在 Vue 项目中,确保静态资源路径设置正确。通常情况下,在 `vue.config.js` 文件中可以通过修改 `publicPath` 来指定公共资源的基础路径: ```javascript module.exports = { publicPath: process.env.NODE_ENV === 'production' ? '/your-app-name/' : '/' } ``` 如果使用相对路径加载图片,则应确认打包后的文件结构是否符合预期。 对于直接引用本地图片的情况,推荐采用如下方式引入: ```html <img src="@/assets/image.png"> <!-- 或者 --> <template> <img v-bind:src="require('@/assets/image.png')"/> </template> <script> export default { data() { return {}; } }; </script> ``` 这种方式能有效避免因 Webpack 打包引起的路径错误[^2]。 #### 2. 后端接口优化 当图片存储于服务器上并通过 API 获取时,需注意返回响应头中的 Content-Type 是否匹配实际媒体类型。例如,JPEG 图片应当设置为 `image/jpeg`;PNG 则对应 `image/png` 等等。 另外,考虑到跨域资源共享 (CORS),即使解决了允许凭证 (`allowCredentials`) 和通配符域名冲突问题,仍要验证浏览器控制台是否存在其他 CORS 错误提示。必要时可进一步放宽 CORS 设置以支持特定源站访问图像资源[^1]。 #### 3. Nginx 反向代理配置 部署阶段经常遇到的一个问题是生产环境下的反向代理配置不当造成图片丢失。此时可以在 Nginx 的配置文件里添加针对静态资源的转发规则: ```nginx location /static/ { alias /path/to/static/files/; } location ~* \.(jpg|jpeg|png|gif)$ { expires max; add_header Cache-Control "public"; } ``` 上述配置不仅有助于提高性能,还能确保所有类型的图片都能正常展示给客户端用户[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值