• vue中v-for图片src路径错误


    一、问题概述

    <img :src="data.src" class="nav-img">

    1. html结构如下:

    1.  
      <ul class="nav-list">
    2.  
      <li v-for="data in navlist" :key="data.index">
    3.  
      <div class="item">
    4.  
      <!--{{ data.src }}-->
    5.  
      <img :src="data.src" class="nav-img">
    6.  
      <p class="nav-title">{{ data.title }}</p>
    7.  
      <p class="nav-desc">{{ data.desc }}</p>
    8.  
      </div>
    9.  
      </li>
    10.  
      </ul>

    2. navlist数据如下:

    图片存在 ../../assets/images/index/ 文件夹下

    1.  
      navlist: [
    2.  
      {'title': '鱼塘', 'desc': 'world', 'src': '../../assets/images/index/navlist01.png'},
    3.  
      {'title': '鱼塘', 'desc': 'world', 'src': '../../assets/images/index/navlist01.png'},
    4.  
      {'title': '社群', 'desc': 'world', 'src': '../../assets/images/index/navlist02.png'},
    5.  
      {'title': '积分', 'desc': 'world', 'src': '../../assets/images/index/navlist03.png'},
    6.  
      {'title': '活动', 'desc': 'world', 'src': '../../assets/images/index/navlist04.png'},
    7.  
      {'title': '直播', 'desc': 'world', 'src': '../../assets/images/index/navlist05.png'},
    8.  
      {'title': '资源', 'desc': 'world', 'src': '../../assets/images/index/navlist06.png'},
    9.  
      {'title': '鱼友', 'desc': 'world', 'src': '../../assets/images/index/navlist07.png'},
    10.  
      {'title': '鱼圈', 'desc': 'world', 'src': '../../assets/images/index/navlist08.png'},
    11.  
      {'title': '会员', 'desc': 'world', 'src': '../../assets/images/index/navlist09.png'}
    12.  
      ]

     3. 页面效果如下

    图片无法显示

    4. 浏览器中html解析如下

    路径正确,但图片不显示

    5. assets与static文件夹的区别

    assets:在项目编译的过程中会被webpack处理解析为模块依赖,只支持相对路径的形式,如< img src=”./logo.png”>和background:url(./logo.png),”./logo.png”是相对资源路径,将有webpack解析为模块依赖 


    static:在这个目录下文件不会被被webpack解析。他会直接被复制到最终的打包目录(默认是dist/static)下。必须使用绝对路径引用这些文件,这是通过config.js文件中的build.assetsPublic和build.assertsSubDirectory链接来确定的。任何放在static/中文件需要以绝对路径的形式引用:/static[filename] 
    根据webpack的特性,总的来说就是static放不会变动的文件,asserts放可能会变动的文件

    二、解决方案

    1. 用require()处理src路径

    {'title': '鱼塘', 'desc': 'world', 'src': require('../../assets/images/index/navlist01.png')}

    1.  
      data () {
    2.  
      return {
    3.  
      navlist: [
    4.  
      {'title': '鱼塘', 'desc': 'world', 'src': require('../../assets/images/index/navlist01.png')},
    5.  
      {'title': '鱼塘', 'desc': 'world', 'src': require('../../assets/images/index/navlist01.png')},
    6.  
      {'title': '社群', 'desc': 'world', 'src': require('../../assets/images/index/navlist02.png')},
    7.  
      {'title': '积分', 'desc': 'world', 'src': require('../../assets/images/index/navlist03.png')},
    8.  
      {'title': '活动', 'desc': 'world', 'src': require('../../assets/images/index/navlist04.png')},
    9.  
      {'title': '直播', 'desc': 'world', 'src': require('../../assets/images/index/navlist05.png')},
    10.  
      {'title': '资源', 'desc': 'world', 'src': require('../../assets/images/index/navlist06.png')},
    11.  
      {'title': '鱼友', 'desc': 'world', 'src': require('../../assets/images/index/navlist07.png')},
    12.  
      {'title': '鱼圈', 'desc': 'world', 'src': require('../../assets/images/index/navlist08.png')},
    13.  
      {'title': '会员', 'desc': 'world', 'src': require('../../assets/images/index/navlist09.png')}
    14.  
      ]
    15.  
      }
    16.  
      }

    2. html结构不变

    1.  
      <ul class="nav-list">
    2.  
      <li v-for="data in navlist" :key="data.index">
    3.  
      <div class="item">
    4.  
      <!--{{ data.src }}-->
    5.  
      <img :src="data.src" class="nav-img">
    6.  
      <p class="nav-title">{{ data.title }}</p>
    7.  
      <p class="nav-desc">{{ data.desc }}</p>
    8.  
      </div>
    9.  
      </li>
    10.  
      </ul>

    3. 页面效果如下

    正常显示

    4. 浏览器中html解析如下

    webpack打包之后src路径

    (5条消息) vue中v-for图片src路径错误_m0_37605642的博客-CSDN博客 

    https://blog.csdn.net/m0_37605642/article/details/90447322

    vue 中v-for img src 路径加载问题 - 戴三山 - 开发者的网上家园 

    https://www.cnblogs.com/xmjs/p/12798066.html

    (5条消息) Vue中动态绑定img的src属性_邓惠子飞吧-CSDN博客 

    https://blog.csdn.net/denghuizi/article/details/83095165?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param

    作者:阿笨

          【官方QQ一群:跟着阿笨一起玩NET(已满)】:422315558跟着阿笨一起玩NET

          【官方QQ二群:跟着阿笨一起玩C#(已满)】:574187616跟着阿笨一起玩C#

          【官方QQ三群:跟着阿笨一起玩ASP.NET(已满)】:967920586跟着阿笨一起玩ASP.NET

          【官方QQ四群:Asp.Net Core跨平台技术开发(可加入)】:806491485Asp.Net Core跨平台技术开

          【官方QQ五群:.NET Core跨平台开发技术(可加入)】:1036896405.NET Core跨平台开发技术

          【网易云课堂】:https://study.163.com/provider/2544628/index.htm?share=2&shareId=2544628

          【腾讯课堂】:https://abennet.ke.qq.com

          【51CTO学院】:https://edu.51cto.com/sd/66c64

          【微信公众号】:http://dwz.cn/ABenNET

  • 相关阅读:
    java 抽象类
    ClassNotFoundException: dao.impl.ActionImpl
    侦听状态一直为T的处理
    Duplicate entry '1' for key 'PRIMARY'(报错)
    ibatis学习笔记
    java中的堆、栈和常量池
    servlet学习
    三大排序
    第一次面试??交流
    毕业季,学长,学姐们的践行
  • 原文地址:https://www.cnblogs.com/51net/p/13764977.html
Copyright © 2020-2023  润新知