guoyu/Archive/fronted_uniapp_docs/内网部署优化说明.md
2026-01-30 15:08:32 +08:00

167 lines
4.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 内网部署优化说明
## 问题诊断
您反馈的"打包成正式包后加载缓慢、图标无法加载"问题,已针对内网环境进行了优化。
## 已完成的优化 ✅
### 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: '请确保已连接到内网WiFi192.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. 连接到内网WiFi192.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. 具体的错误信息或截图