# 内网部署优化说明 ## 问题诊断 您反馈的"打包成正式包后加载缓慢、图标无法加载"问题,已针对内网环境进行了优化。 ## 已完成的优化 ✅ ### 1. 网络请求优化 **问题:** 原超时时间30秒太长,内网环境请求失败时等待时间过久 **优化:** - ✅ 请求超时从 `30秒` 缩短到 `10秒` - ✅ 重试次数从 `2次` 减少到 `1次` - ✅ 重试延迟从 `1000ms` 缩短到 `500ms` **文件:** `utils/request.js`, `utils/config.js` ### 2. App启动优化 **问题:** 启动页等待首页渲染完成才关闭,导致启动慢 **优化:** - ✅ 启动页配置 `waiting: false`,不等待首页渲染即关闭 - ✅ 提升用户感知的启动速度 **文件:** `manifest.json` ### 3. 打包资源优化 **优化:** - ✅ 小图标(<10KB)自动内联为base64,减少网络请求 - ✅ 保留console日志便于内网环境调试 - ✅ 代码分块优化,减小首屏加载体积 **文件:** `vite.config.js` ### 4. 环境配置 **优化:** - ✅ 生产环境自动使用内网IP `192.168.0.106:30091` - ✅ 无需手动修改配置即可打包 **文件:** `.env.production` ## 可能的问题原因分析 ### 场景1: 设备未连接到内网WiFi **现象:** App加载缓慢或无法加载 **原因:** 设备连接到其他网络,无法访问 `192.168.0.106` **解决:** 1. 确保设备连接到与服务器相同的局域网 2. 测试网络连通性:在浏览器中访问 `http://192.168.0.106:30091` ### 场景2: 服务器未启动 **现象:** 所有请求超时 **原因:** 后端服务未运行 **解决:** 1. 启动后端服务 2. 确认服务运行在 `30091` 端口 3. 检查防火墙是否允许访问 ### 场景3: 首次启动加载资源多 **现象:** 第一次启动慢,后续正常 **原因:** 需要加载用户数据、课程列表等 **这是正常的:** 已优化超时时间,失败会快速反馈 ### 场景4: 图标文件问题 **检查清单:** - [x] static/icon 目录下图标文件完整 - kaoshi.png (1.7KB) - kecheng.png (4.9KB) - shouye.png (7.7KB) - wode.png (6.9KB) - voice.png (0.4KB) - [x] 打包时会自动包含这些文件 ## 进一步优化建议 ### 1. 添加网络检测(推荐) 在App启动时检测网络连通性,提前告知用户: ```javascript // App.vue onLaunch中添加 async checkNetwork() { try { const res = await uni.request({ url: config.API_BASE_URL + '/health', timeout: 3000 }) if (res.statusCode !== 200) { uni.showModal({ title: '网络提示', content: '请确保已连接到内网WiFi(192.168.0.106)', showCancel: false }) } } catch (e) { uni.showModal({ title: '无法连接服务器', content: '请检查:\n1. 是否连接到正确的WiFi\n2. 服务器是否已启动\n3. IP地址:192.168.0.106', showCancel: false }) } } ``` ### 2. 添加资源预加载 对于课程详情页的视频等大文件,可以添加预加载逻辑。 ### 3. 离线缓存 考虑使用 `uni.setStorage` 缓存课程列表等数据,减少网络请求。 ## 测试步骤 ### 打包前测试 1. 连接到内网WiFi(192.168.0.106所在网络) 2. 在HBuilderX中运行到真机 3. 测试各项功能是否正常 4. 观察加载速度和图标显示 ### 打包测试 1. 使用HBuilderX打包正式版(会自动使用.env.production配置) 2. 安装到测试设备 3. **关键**:确保设备连接到内网WiFi 4. 测试各项功能 ### 常见测试问题 **Q: 打包后登录不了?** A: 检查服务器地址配置,在App设置中可以查看当前服务器地址 **Q: 视频播放不了?** A: 1. 检查视频文件是否上传到服务器 2. 检查文件路径是否正确(/profile/upload/...) 3. 在浏览器直接访问视频URL测试 **Q: 图标显示异常?** A: 1. 确认打包时包含了static目录 2. 检查HBuilderX的打包日志 3. 尝试清除缓存重新打包 ## 网络要求 ### 服务器端 - IP: `192.168.0.106` - 端口: `30091` - 必须在局域网内可访问 ### 客户端(App) - 必须连接到与服务器相同的局域网 - WiFi名称建议固定(便于用户识别) - 建议在App中显示当前服务器地址 ## 监控建议 在生产环境中,建议添加: 1. **连接状态指示器** - 显示是否连接到服务器 2. **网络状态监听** - WiFi断开时提示用户 3. **错误日志收集** - 方便排查问题 ## 联系方式 如有问题,请提供: 1. 设备连接的网络名称 2. 服务器IP是否可以ping通 3. 具体的错误信息或截图