4.6 KiB
4.6 KiB
内网部署优化说明
问题诊断
您反馈的"打包成正式包后加载缓慢、图标无法加载"问题,已针对内网环境进行了优化。
已完成的优化 ✅
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
解决:
- 确保设备连接到与服务器相同的局域网
- 测试网络连通性:在浏览器中访问
http://192.168.0.106:30091
场景2: 服务器未启动
现象: 所有请求超时 原因: 后端服务未运行 解决:
- 启动后端服务
- 确认服务运行在
30091端口 - 检查防火墙是否允许访问
场景3: 首次启动加载资源多
现象: 第一次启动慢,后续正常 原因: 需要加载用户数据、课程列表等 这是正常的: 已优化超时时间,失败会快速反馈
场景4: 图标文件问题
检查清单:
- static/icon 目录下图标文件完整
- kaoshi.png (1.7KB)
- kecheng.png (4.9KB)
- shouye.png (7.7KB)
- wode.png (6.9KB)
- voice.png (0.4KB)
- 打包时会自动包含这些文件
进一步优化建议
1. 添加网络检测(推荐)
在App启动时检测网络连通性,提前告知用户:
// 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 缓存课程列表等数据,减少网络请求。
测试步骤
打包前测试
- 连接到内网WiFi(192.168.0.106所在网络)
- 在HBuilderX中运行到真机
- 测试各项功能是否正常
- 观察加载速度和图标显示
打包测试
- 使用HBuilderX打包正式版(会自动使用.env.production配置)
- 安装到测试设备
- 关键:确保设备连接到内网WiFi
- 测试各项功能
常见测试问题
Q: 打包后登录不了? A: 检查服务器地址配置,在App设置中可以查看当前服务器地址
Q: 视频播放不了? A:
- 检查视频文件是否上传到服务器
- 检查文件路径是否正确(/profile/upload/...)
- 在浏览器直接访问视频URL测试
Q: 图标显示异常? A:
- 确认打包时包含了static目录
- 检查HBuilderX的打包日志
- 尝试清除缓存重新打包
网络要求
服务器端
- IP:
192.168.0.106 - 端口:
30091 - 必须在局域网内可访问
客户端(App)
- 必须连接到与服务器相同的局域网
- WiFi名称建议固定(便于用户识别)
- 建议在App中显示当前服务器地址
监控建议
在生产环境中,建议添加:
- 连接状态指示器 - 显示是否连接到服务器
- 网络状态监听 - WiFi断开时提示用户
- 错误日志收集 - 方便排查问题
联系方式
如有问题,请提供:
- 设备连接的网络名称
- 服务器IP是否可以ping通
- 具体的错误信息或截图