当前位置: 首页 > article >正文

简单讲解关于微信小程序调整 miniprogram 后, tabbar 找不到图片的原因之一

微信小程序开发,[ miniprogram/app.json 文件内容错误],["tabBar"]["list"][0]["iconPath"]: "/miniprogram/assets/tabbar/icon_main_home.png" 未找到

  • 简单讲解关于调整 miniprogram 后, tabbar 找不到图片的原因之一
    • 问题出现的原因
    • 错误提示
    • 出现错误疑惑点
    • 错误原因
    • 正确写法
    • 总结

简单讲解关于调整 miniprogram 后, tabbar 找不到图片的原因之一

问题出现的原因

  1. 当我开发微信小程序一段时间后,就准备使用npm导包依赖第三方库,导包之前就调整了一下项目结构,把所有源码放到 miniprogram 文件夹下,在project.config.json中配置了 "miniprogramRoot": "miniprogram/",项目此时是正常的。
  2. 当我把图片也归整了一下,把tabbar图片,从 /miniprogram/images/ 文件夹下,迁移到新建的 /miniprogram/assets/tabbar/ 文件夹下,在 app.json 中的 tabbar 位置修改了图片路径,再次编译,此时就报错了

错误提示

[ miniprogram/app.json 文件内容错误] miniprogram/app.json: ["tabBar"]["list"][0]["iconPath"]: "/miniprogram/assets/tabbar/icon_main_home.png" 未找到 ... ...

修改之前的代码片段:

"list": [
      {
        "pagePath": "pages/main-home/home",
        "text": "首页",
        "iconPath": "images/icon_main_home.png",
        "selectedIconPath": "images/icon_main_home_active.png"
      },
      {
        "pagePath": "pages/main-mine/mine",
        "text": "我的",
        "iconPath": "images/icon_main_mine.png",
        "selectedIconPath": "images/icon_main_mine_active.png"
      }
    ],

调整源码到 miniprogram 文件夹,并且又调整了图片目录结构,此时报错了,代码片段:

"list": [
      {
        "pagePath": "pages/main-home/home",
        "text": "首页",
        "iconPath": "/miniprogram/assets/tabbar/icon_main_home.png",
        "selectedIconPath": "/miniprogram/assets/tabbar/icon_main_home_active.png"
      },
      {
        "pagePath": "pages/main-mine/mine",
        "text": "我的",
        "iconPath": "/miniprogram/assets/tabbar/icon_main_mine.png",
        "selectedIconPath": "/miniprogram/assets/tabbar/icon_main_mine_active.png"
      }
    ],

出现错误疑惑点

  1. 路径完全正确
  2. 点击图片路径也能正常跳转到图片
  3. 看着与调整项目之前并没什么区别
  4. 不能使用 ../ 调用父级,我就使用 / 直接从文件根目录写

以上几点是我一开始觉得,什么都对了,什么也都试了,为什么还出错误呢?

错误原因

  1. 调整项目后,在 project.config.json 中配置了 "miniprogramRoot": "miniprogram/" ,此时的根目录就是当前 app.json 的位置,asset 文件夹与 app.json 文件同级。
  2. "/miniprogram/assets/tabbar/icon_main_home.png" 配置中的地址第一个 / 代表的就是miniprogram/ ,把当前配置项的图片地址翻译完整为 miniprogram/miniprogram/assets/tabbar/icon_main_home.png

故而微信开发者工具提示图片未找到的错误

正确写法

  1. 因为项目的根目录已经在 project.config.json 中配置了 "miniprogramRoot": "miniprogram/" ,项目根路径 / 就代表是 miniprogram/ 文件夹。
  2. 又因为 app.json 配置文件 与 assets 文件夹在同级,在 app.json 配置文件中,tabbar 图片路径地址可直接写 assets/tabbar/icon_main_home.png,或者在地址前添加 .// 就可以了。

正确的代码片段:

"list": [
      {
        "pagePath": "pages/main-home/home",
        "text": "首页",
        "iconPath": "assets/tabbar/icon_main_home.png",
        "selectedIconPath": "assets/tabbar/icon_main_home_active.png"
      },
      {
        "pagePath": "pages/main-mine/mine",
        "text": "我的",
        "iconPath": "assets/tabbar/icon_main_mine.png",
        "selectedIconPath": "assets/tabbar/icon_main_mine_active.png"
      }
    ],

总结

  1. project.config.json 中配置了 "miniprogramRoot": "miniprogram/" ,就代表小程序的根目录为 miniprogram/
  2. 在开发项目时,使用 / 对资源文件的调用,就指的是 miniprogram/ 文件夹
  3. 在了解配置的真正含义,并充分了解配置所带来的项目变化,掌握其开发规范,以及注意事项,在开发过程中,就会避免踩很多坑

http://www.kler.cn/a/455126.html

相关文章:

  • docker-compose怎么写注释
  • arcface
  • Java基础知识(四) -- 面向对象(下)
  • 15、【OS】【Nuttx】OS裁剪,运行指定程序,周期打印当前任务
  • 电子电气架构 --- 什么是自动驾驶技术中的域控制单元(DCU)?
  • 书签管理工具的使用技巧
  • 【FastAPI】中间件
  • Ingress-Nginx Annotations 指南:配置要点全方面解读(下)
  • openai chatgpt原理介绍
  • 智能家居实训室中,STC单片机驱动的“互联网+”智能家居系统设计
  • 【C++动态规划 图论】3243. 新增道路查询后的最短距离 I|1567
  • (ICCV-2023)SVDiff:用于扩散微调的紧凑参数空间
  • c++ 命名空间
  • Android:bug记录(简单)
  • 免费线上签字小程序,开启便捷电子签名
  • vue2中使用 v-html 指令渲染的标签, 标签内绑定的 click 事件
  • VMware替换应该关注哪些因素?越来越多的用户倾向于选择脱离硬件绑定的独立虚拟化软件
  • springboot 使用注解设置缓存时效
  • 自然语言处理(NLP)中的事件检测和事件抽取
  • React性能优化:构建更高效的应用
  • AIDD -人工智能药物设计-RDKit | 基于不同描述符和指纹的机器学习模型预测logP
  • pyqt和pycharm环境搭建
  • 【Python】‌数据库工具类,使用python连接sql server数据库
  • 12.13[java exp4][debug]nginx 500,究极未解之谜,出自重启,解决自重启,迷???
  • 【微信小程序】页面跳转基础 | 我的咖啡店-综合实训
  • 猛将:无我