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

4.6 KiB
Raw Permalink Blame History

内网部署优化说明

问题诊断

您反馈的"打包成正式包后加载缓慢、图标无法加载"问题,已针对内网环境进行了优化。

已完成的优化

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: 图标文件问题

检查清单:

  • 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: '请确保已连接到内网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. 具体的错误信息或截图