theme: 启动日志暴露未登记的主题
新增主题后忘了写进 [theme] available,表现只是"设置页里找不到", 日志里没有任何痕迹。现在启动时会打: - info 主题注册表已加载 enabled=... - warn [theme] available 未登记以下主题 themes=shiroko available=... discover() 用 fs.Glob 扫内嵌 css/themes/*.css,按 slug 规则过滤掉 _scaffold.css。 示例配置补上 shiroko,文档补「部署后看不到主题」的两步排查。
This commit is contained in:
@@ -93,3 +93,35 @@ available = default,sakura,shiroko
|
||||
3. 换配色:改 `shiroko.css` 的令牌即可,插画是位图,换色需重新生成。
|
||||
4. 新增素材不需要改 `static/fs.go`(已嵌整个 `images/themes` 目录);但改了 CSS 必须把
|
||||
`conf.StaticVersion` +1,否则老访客吃缓存看不到变化。
|
||||
|
||||
## 部署后设置页看不到这个主题?
|
||||
|
||||
先分两步确认,不要一上来就怀疑缓存:
|
||||
|
||||
1. **文件是否随二进制发布了** —— 直接取一次静态资源:
|
||||
|
||||
```bash
|
||||
curl -o /dev/null -w "%{http_code}\n" \
|
||||
https://<你的域名>/static/css/themes/shiroko.css?v=<StaticVersion>
|
||||
```
|
||||
|
||||
返回 200 说明 css 已经嵌进去了;返回 404 说明部署的是旧二进制。
|
||||
|
||||
2. **是否登记进 `[theme] available`** —— 主题列表是启动时按白名单构建的,
|
||||
css 在但没登记,设置页就看不到它。检查 `conf/app.ini`:
|
||||
|
||||
```ini
|
||||
[theme]
|
||||
default = default
|
||||
available = default,sakura,shiroko
|
||||
```
|
||||
|
||||
改完**重启**进程(`[theme]` 只在启动时读)。
|
||||
|
||||
启动日志会直接告诉你缺哪一行:
|
||||
|
||||
```
|
||||
level=info msg="主题注册表已加载" enabled="default,sakura"
|
||||
level=warning msg="[theme] available 未登记以下主题,它们不会出现在设置页"
|
||||
available="default,sakura,shiroko" themes=shiroko
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user