34 lines
1.2 KiB
Markdown
34 lines
1.2 KiB
Markdown
|
|
# 2026-06-02 保持后台会话免刷新
|
|||
|
|
|
|||
|
|
## 摘要
|
|||
|
|
|
|||
|
|
修复长时间空闲后点击菜单提示「请 Ctrl+F5 强制刷新」:部署保留 14 天旧前端 chunk;路由懒加载失败时自动 reload 一次。
|
|||
|
|
|
|||
|
|
## 动机
|
|||
|
|
|
|||
|
|
`prune_frontend_assets.py` 在每次部署删除全部未引用 assets,旧标签页懒加载旧哈希 chunk 返回 404,触发 `router.onError` 强刷提示。用户期望不关浏览器即可继续使用。
|
|||
|
|
|
|||
|
|
## 涉及文件
|
|||
|
|
|
|||
|
|
- `deploy/prune_frontend_assets.py` — `--retention-days`(默认 14)
|
|||
|
|
- `frontend/src/router/index.ts` — chunk 失败静默 reload + `afterEach` 清标志
|
|||
|
|
- `docs/design/specs/2026-06-02-keep-session-no-refresh-design.md`
|
|||
|
|
|
|||
|
|
## 迁移 / 重启
|
|||
|
|
|
|||
|
|
- 前端需重新 `vite build` 并部署 `web/app/`
|
|||
|
|
- 更新服务器上 `deploy/prune_frontend_assets.py`(下次 deploy-frontend 自动使用)
|
|||
|
|
- 无需 DB 迁移;后端无需改代码
|
|||
|
|
|
|||
|
|
## 验证
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
python deploy/prune_frontend_assets.py --dry-run --retention-days=14
|
|||
|
|
# 应输出 retained_orphans=... would_remove=...
|
|||
|
|
|
|||
|
|
ssh nexus "curl -s -o /dev/null -w '%{http_code}' http://127.0.0.1:8600/app/"
|
|||
|
|
# 预期 200
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
浏览器:登录后闲置,再点击各菜单不应再出现「请 Ctrl+F5」;关浏览器再开仍保持登录(refresh cookie)。
|