fix(web): 首页只留下载、去登录/在线体验入口; 下载区改二维码; 修复网络版一直提示新版本
Android Build & Publish / build-android (push) Failing after 6s
Docker Build and Push / build-image (push) Successful in 2m25s

- Landing: 移除 header 登录/进入应用按钮、hero 在线体验入口
- 下载区: 复制链接行改为 qrcode.react 二维码 (扫码下载 APK)
- 修复 '持续提示新版本可用' bug: vite 构建时把 BUILD_ID 写入 dist/.build-id,
  manifest-web 返回当前部署 dist 的 build_id, 与浏览器内置值同源比对;
  此前返回 OTA 包 build_id (seq-<ts>) 与页面 BUILD_ID 永不一致 → 横幅常驻
This commit is contained in:
jif2.zhang
2026-09-14 09:49:39 +08:00
parent 47db85d01d
commit b2db988834
5 changed files with 54 additions and 46 deletions
+10 -1
View File
@@ -83,13 +83,22 @@ router.get('/ota/bundle/:filename', (req, res) => {
// GET /api/ota/manifest-web - Web 浏览器用的简化版
// 客户端会拿这个跟当前 build_id 比较, 有新版本就提示用户刷新
// 比对依据: 当前部署的 dist/.build-id (vite 构建时写入), 与浏览器内置 BUILD_ID 同源;
// 当服务端换了新 dist, 老标签页拿到的 build_id 变化 → 提示刷新
router.get('/ota/manifest-web', (_req, res) => {
const latest = readLatest()
if (!latest) return res.json({ available: false })
// 优先用"当前托管 dist"的 build_id (部署时 dist/.build-id 与浏览器页面同一次构建)
let buildId = null
try {
buildId = fs
.readFileSync(path.join(path.resolve(process.cwd(), 'dist'), '.build-id'), 'utf8')
.trim()
} catch { /* dist 未构建或无该文件时忽略 */ }
res.json({
available: true,
version: latest.version,
build_id: latest.build_id || latest.version,
build_id: buildId || latest.build_id || latest.version,
note: latest.notes || '',
size: latest.bundle_size || 0,
})