peixue-dev/Archive/peidu-temp-files/docs/🎉🎉🎉课程播放器路由问题彻底解决-2026-01-23.md

4.9 KiB
Raw Blame History

🎉🎉🎉 课程播放器路由问题彻底解决!

📅 时间

2026-01-23

🐛 问题根源

错误信息

navigateTo:fail page "user-package/pages/course/player?id=106&purchaseId=29" is not found

真正的原因

项目使用了 双层目录结构

  • 开发目录: peidu/uniapp/src/ (真正的源代码)
  • 根目录: peidu/uniapp/ (旧的或编译输出)

关键发现

  1. 页面文件存在于 src/user-package/pages/course/player.vue
  2. src/pages.json 中没有注册 player 页面
  3. 之前修改了根目录的 pages.json,但那不是实际使用的配置文件

正确的修复方案

修改 src/pages.json(真正的配置文件)

user-package 分包的 pages/course/my-courses 后面添加了3个缺失的页面

{
  "path": "pages/course/player",
  "style": {
    "navigationBarTitleText": "课程学习"
  }
},
{
  "path": "pages/growth/list",
  "style": {
    "navigationBarTitleText": "成长记录",
    "enablePullDownRefresh": true
  }
},
{
  "path": "pages/growth/detail",
  "style": {
    "navigationBarTitleText": "记录详情"
  }
}

📊 项目目录结构说明

双层结构

peidu/uniapp/
├── src/                          ← 真正的源代码目录
│   ├── pages.json               ← 真正的配置文件 ✅
│   ├── user-package/
│   │   └── pages/
│   │       ├── course/
│   │       │   ├── my-courses.vue
│   │       │   └── player.vue   ← 页面文件在这里
│   │       ├── growth/
│   │       │   ├── list.vue
│   │       │   └── detail.vue
│   │       └── review/
│   │           ├── list.vue
│   │           └── submit.vue
│   └── ...
├── pages.json                    ← 旧的配置文件 ❌
├── user-package/                 ← 旧的或编译输出目录
└── ...

为什么会有两个 pages.json

  • src/pages.json - 实际使用的配置文件(开发时)
  • pages.json - 可能是旧版本或编译输出

📋 修复的页面列表

页面 路径 功能 状态
课程播放器 pages/course/player 播放课程视频 已添加到 src/pages.json
成长记录列表 pages/growth/list 显示学生成长记录 已添加到 src/pages.json
成长记录详情 pages/growth/detail 查看单条成长记录详情 已添加到 src/pages.json

注意pages/review/listpages/review/submit 已经在 src/pages.json 中存在,无需添加。

🎯 跳转路径

正确的跳转方式

// 从我的课程跳转到播放器
uni.navigateTo({
  url: `/user-package/pages/course/player?id=${courseId}&purchaseId=${purchaseId}`
})

// 从成长记录列表跳转到详情
uni.navigateTo({
  url: `/user-package/pages/growth/detail?id=${recordId}`
})

// 从订单详情跳转到提交评价
uni.navigateTo({
  url: `/user-package/pages/review/submit?orderId=${orderId}`
})

🧪 测试步骤

1. 重新编译项目 ⚠️ 重要!

# 在微信开发者工具中
1. 点击"编译""重新编译"
2. 或者关闭项目后重新打开

2. 测试课程播放器跳转

  1. 进入"我的课程"页面
  2. 点击任意课程的"查看课程"按钮
  3. 应该成功跳转到课程播放器页面
  4. 页面显示课程视频和学习记录

3. 测试成长记录跳转

  1. 进入"成长记录"列表页面
  2. 点击任意记录
  3. 应该成功跳转到记录详情页面
  4. 页面显示完整的成长记录内容

📁 修改的文件

正确修改的文件

  • peidu/uniapp/src/pages.json - 添加了3个页面配置

错误修改的文件(已回滚)

  • peidu/uniapp/pages.json - 这个文件不是实际使用的配置

⚠️ 重要提示

1. 始终修改 src 目录下的文件

  • 开发时应该修改 src/ 目录下的文件
  • 根目录的文件可能是编译输出或旧版本

2. 修改后必须重新编译

  • 修改 pages.json 后必须重新编译项目
  • 在微信开发者工具中点击"重新编译"

3. 分包路径规则

  • 分包配置在 subPackages 数组中
  • root 指定分包根目录(相对于 src 目录)
  • 分包内的页面路径是相对于 root 的相对路径
  • 跳转时使用完整路径:/分包root/页面路径

4. 页面文件位置

src/user-package/pages/course/player.vue
    ↓
pages.json 中配置为: "pages/course/player"
    ↓
跳转时使用: "/user-package/pages/course/player"

🎉 修复完成

所有缺失的页面配置已正确添加到 src/pages.json 中!

下一步操作

  1. 重新编译小程序(最重要!)
  2. 测试所有页面跳转功能
  3. 确认页面显示正常

修复时间: 2026-01-23
修复状态: 完成
关键文件: peidu/uniapp/src/pages.json