Commit Graph
2 Commits
Author SHA1 Message Date
sun 7b8f557f54 feat(router): v0.3.0 阶段二 管理入口迁移与前端同步
管理入口从 /admin 迁至 /dashboard:
- /dashboard、/dashboard/voices、/dashboard/settings 为新入口
- 原挂在 /dashboard 上的服务状态预览页(health.html)迁至 /dashboard/status,
  侧边栏新增「观测 → 详细状态」入口
- /admin 及子路径 301 永久重定向到对应新路径(页面用 301 是正确的)
- 静态资源同时注册 /dashboard/ 与 /admin/ 两套路径,
  避免过渡期出现"页面能开但丢样式"

前端同步:
- admin-shell.js:侧边栏导航、登出、登录跳转改指 /dashboard/*
- admin.html / admin-login.html / admin-voices.html / admin-settings.html:
  静态资源引用与登录跳转改指 /dashboard/*
- health.html:改用 admin-shell 的 http 实例并改调 /admin/health、/admin/metrics
  (该实例自动附加 Authorization: Bearer;原实现用裸 axios,不带凭证),
  并加登录校验与「返回控制台」入口
- setup.html:安装完成跳转目标改为 /dashboard,页面内 /admin 文案同步更新
- 各页面的 API 调用路径无需修改:axios baseURL 为 /api,
  故 /voices、/admin/overview 等自动落成 /api/admin/*

controller/setup.go:安装成功响应的 redirect 字段由 /admin 改为 /dashboard。

验证:go build / go vet / go test ./... -count=1 全绿;
另用真实服务器端到端验证:旧入口 301 全部正确、静态资源新旧路径均 200、
管理页面内容协商(html 200 / 非 html 401)、登录页公开、
各页面引用的静态资源均为新路径且无残留旧路径。
2026-10-04 01:17:26 +08:00
sun 8be40ae6dc chore: embed health.html 到 binary,单文件分发
把 health.html 从外部依赖改为 //go:embed 内嵌,
实现真正的"单 exe 分发"。

  - 新建 router/dashboard.go,用 //go:embed 嵌入 health.html
  - router/router.go:/dashboard handler 改为 w.Write(dashboardHTML)
  - setting/config.go:删 CheckStaticFiles(无需文件检查)
  - main.go:删 setting.CheckStaticFiles() 调用
  - Dockerfile:删 COPY health.html 步骤(已嵌入)
  - .gitignore:加 release/(build 产物不入 git)
  - 物理移动 health.html 到 router/(embed 限制:同包或子包)

效果:
  - 之前: release 包 = tts-api.exe + health.html (2 个文件)
  - 之后: release 包 = tts-api.exe (1 个文件,~7 MB)
  - 用户部署无需额外文件,/dashboard 路由直接工作
2026-08-27 11:44:44 +08:00