主题结构、校验与打包发布
七个必需模板、theme.json 约束、CLI 校验与后台导入流程。
主题就是 themes/<id> 下的一个目录,不依赖 Go 代码。为了保证站点不会因为缺模板或错误标签而白屏,导入与启用前会执行完整校验。
最小目录结构
corporate/
theme.json
index.html
list.html
detail.html
page.html
search.html
403.html
404.html
inc/
head.html
header.html
footer.html
assets/
css/site.css
js/site.js
theme.json
{
"id": "corporate",
"name": "企业官网",
"version": "1.0.0",
"engine": ">=1.0.0",
"templates": ["index.html", "list.html", "detail.html",
"page.html", "search.html", "403.html", "404.html"]
}
id 必须与目录名一致,字段不允许未知项。目录内所有 .html 文件都会参与校验,包括没有写进 templates 的可选模板和公共片段。
校验与打包
cms theme validate --source /path/to/themes/corporate
cms theme pack \
--source /path/to/themes/corporate \
--output /path/to/dist/corporate-1.0.0.zip
validate 会检查标签、属性、include 关系、资源类型和包限制;pack 会生成可重复构建的 ZIP,并用正式导入器再校验一次。
后台导入与启用
- 进入“系统管理 → 主题管理”。
- 导入 ZIP,校验成功后主题出现在本地列表,但不会自动启用。
- 确认前台效果后点击“启用”,系统会再次执行完整校验并保存
site.theme。
升级与回滚
主题文件建议纳入版本管理。升级前备份 themes/ 与数据库站点设置;线上直接改过模板时,在线升级会检测到本地修改并拒绝静默覆盖。回滚时先恢复主题目录,再切换 site.theme。
缓存
主题文件变化会按文件指纹自动失效页面缓存,但浏览器与 CDN 仍可能缓存 CSS/JS。发布新版本时建议给静态资源加版本查询参数,或在 Nginx 层设置合理的缓存策略。
讨论
发表评论