CI 测试 / go vet + go test (push) Successful in 49s
- 全项目版本号统一:v3.x 迭代号(26.9/26.9/26.9/26.9 及裸 v2/v3)→ 26.9, 覆盖 Go 注释 / 文档 / openapi.yaml / README×4 / 前端源码(80+ 处) - v31_test.go 更名 custom_code_test.go;TestV2AccessorDefaults → TestKVAccessorDefaults - docs/api/00-overview.md 更新日志合并为单条 26.9 条目(修复错位拼接) - .goreleaser.yaml 头部注释与实际一致(Pro 2.18.1 / GITEA_TOKEN / semver tag 要求) - CI:release-image.yml → ci.yml,仅保留 vet+test 门禁; 镜像发布移交 GoReleaser Pro(原 build-push 的 tag 校验与 26.9 版本方案冲突,历史 9 次失败) - 前端重建:server/web/dist 与 web-embed 同步(docs 文案嵌入更新)
2.5 KiB
2.5 KiB
Logo 自定义
默认 Logo(内置,26.9 需求 ⑤)
| 项 | 默认值 | 用途 |
|---|---|---|
| 页面导航 Logo | 前端打包本地资源 /assets/logo-*.svg(源:web/src/assets/brand/logo.svg) |
导航栏 <img>;config.logo_url 为空时回落使用 |
| favicon / 备用 Logo | 前端打包本地资源 /assets/favicon-*.png(源:web/src/assets/brand/favicon.png) |
index.html <link rel="icon"> + 动态 favicon 回落 |
26.9 起默认不再引用远程 URL:GET /api/v1/config 中 logo_url/favicon_url 默认下发空串,
前端 displayLogoUrl/displayFaviconUrl 判空后回落到打包的本地资源。
管理端仍可设置任意 URL 全站替换(三步如下)。
管理端自定义(三步)
- 登录后台:
POST /admin/login获取 Bearer 令牌。 - 保存配置:
PATCH /admin/config/update更新logo_url(与可选favicon_url),值为图片 URL 或经管理端上传后得到的地址。 - 全站生效:保存即写入 settings KV 并热更新,前端读取公共配置立即换新 Logo,无需重启。
curl 示例:
curl -s -X PATCH http://localhost:8466/admin/config/update \
-H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \
-d '{"logo_url":"https://cdn.example.com/logo.svg","favicon_url":"https://cdn.example.com/favicon.png"}'
{ "code": 200, "msg": "ok", "data": { "ok": true } }
也可以在管理界面「系统设置」页操作(上传图片或填写 URL),效果相同。
校验生效
curl -s http://localhost:8466/api/v1/config
{
"code": 200, "msg": "ok",
"data": { "config": { "logo_url": "https://cdn.example.com/logo.svg", "favicon_url": "https://cdn.example.com/favicon.png" } }
}
恢复默认
把 logo_url / favicon_url 置回默认值(空串,前端回落本地打包资源)即可:
curl -s -X PATCH http://localhost:8466/admin/config/update \
-H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \
-d '{"logo_url":"","favicon_url":""}'
相关行为
- 前端运行时优先读取配置值;空值回退前端打包的本地资源(
web/src/assets/brand/logo.svg+favicon.png,经displayLogoUrl/displayFaviconUrl判空回落)。 site_name同样支持运行时自定义(PATCH /admin/config/update的site_name键)。- Logo/favicon 仅涉及展示层,修改不影响会话与令牌(不轮换
jwt_secret)。