无论站点多大,发布都是瞬间完成的。Malla 会冻结站点的一个版本,存到 Cloudflare 的网络上,再一步把你的域名切换过去,访客永远不会看到发布到一半的站点。
预发布与生产环境
| 预发布(staging) | 生产环境 | |
|---|---|---|
| 地址 | <slug>. 加你的 Malla 站点域名 | 你的自定义域名,外加一个 <slug>-prod 备用地址 |
| 搜索引擎 | 始终屏蔽(Disallow: /) | 可被索引,遵循你的 SEO 设置 |
| 谁可以发布 | 编辑者、管理员、所有者 | 管理员和所有者 |
| 表单和服务端工作流 | 独立的提交记录和运行记录 | 独立的提交记录和运行记录;会发送通知 |
在工具栏中按 Publish,选择环境并确认。完成后,弹出框会显示线上地址。
回滚到更早的发布
每次发布都会保留,所以回退和发布一样是一步切换。发布弹出框在发布按钮下方列出 Recent publishes,对应 Staging / Production 开关中选中的环境。每一行显示发布时间和发布者;访客正在看到的版本带有 Live 标记,如果是回滚让它上线的,还会显示“Rolled back by …”。
选择版本
在工具栏中点击 Publish,选择环境,在 Recent publishes 中找到该版本。
回滚
点击该行上的 Roll back。对话框(Roll back staging? 或 Roll back production?)会说明将重新提供哪个版本。点击 Roll back 确认。完成后,弹出框会显示 Rolled back 以及对应的环境。
每个环境最近的 50 次发布都可以回滚,而且只能在各自的环境内回滚:预发布环境的发布不会通过这种方式进入生产环境。回滚不会新增一行;要撤销回滚,回滚到较新的那次发布即可。
| 回滚会恢复 | 回滚会保持当前状态 |
|---|---|
| 页面、组件、类、令牌和 SEO | CMS 条目,以及集合字段和设置 |
| 重定向和页面访问规则 | 资源:之后删除的资源会显示为缺失文件 |
| 表单定义 | 表单提交记录 |
| 服务端工作流及其计划 | 原生表、访客和集成 |
回滚遵循发布规则:编辑者可以回滚预发布环境,生产环境需要所有者或管理员。没有权限的人看不到 Roll back 按钮,查看者和内容编辑者也看不到这个列表。
页面如何提供服务
每个版本都有自己的缓存键,所以新发布绝不会提供过期页面。带访问规则的页面总是按请求渲染。页面之间的链接会被预取,因此无需单页应用,导航也几乎瞬间完成。
CMS 改动无需重新发布即可上线
发布一个 CMS 条目时,只会重新渲染读取其集合的页面,也就是模板页面和查询该集合的列表。修改集合的字段也会以同样的方式同步到线上站点。
发布前检查
编辑器会提醒你那些会破坏线上站点的问题,例如某个列表按其集合中已不存在的字段进行筛选。