Malla文档

发布

预发布和生产环境、即时发布,以及页面如何渲染和缓存。

用户指南

无论站点多大,发布都是瞬间完成的。Malla 会冻结站点的一个版本,存到 Cloudflare 的网络上,再一步把你的域名切换过去,访客永远不会看到发布到一半的站点。

按下 Publish 后会发生什么
快照页面、组件、类、令牌和 SEO 被冻结成一个不可变的版本。
编译编译并压缩共享 CSS;关键页面预渲染。
存储文件存入 R2,服务端工作流写入边缘配置。
切换一个指针把所有域名同时切换到新版本。

预发布与生产环境

预发布(staging)生产环境
地址<slug>. 加你的 Malla 站点域名你的自定义域名,外加一个 <slug>-prod 备用地址
搜索引擎始终屏蔽(Disallow: /)可被索引,遵循你的 SEO 设置
谁可以发布编辑者、管理员、所有者管理员和所有者
表单和服务端工作流独立的提交记录和运行记录独立的提交记录和运行记录;会发送通知

在工具栏中按 Publish,选择环境并确认。完成后,弹出框会显示线上地址。

回滚到更早的发布

每次发布都会保留,所以回退和发布一样是一步切换。发布弹出框在发布按钮下方列出 Recent publishes,对应 Staging / Production 开关中选中的环境。每一行显示发布时间和发布者;访客正在看到的版本带有 Live 标记,如果是回滚让它上线的,还会显示“Rolled back by …”。

  1. 选择版本

    在工具栏中点击 Publish,选择环境,在 Recent publishes 中找到该版本。

  2. 回滚

    点击该行上的 Roll back。对话框(Roll back staging? 或 Roll back production?)会说明将重新提供哪个版本。点击 Roll back 确认。完成后,弹出框会显示 Rolled back 以及对应的环境。

每个环境最近的 50 次发布都可以回滚,而且只能在各自的环境内回滚:预发布环境的发布不会通过这种方式进入生产环境。回滚不会新增一行;要撤销回滚,回滚到较新的那次发布即可。

回滚会恢复回滚会保持当前状态
页面、组件、类、令牌和 SEOCMS 条目,以及集合字段和设置
重定向和页面访问规则资源:之后删除的资源会显示为缺失文件
表单定义表单提交记录
服务端工作流及其计划原生表、访客和集成

回滚遵循发布规则:编辑者可以回滚预发布环境,生产环境需要所有者或管理员。没有权限的人看不到 Roll back 按钮,查看者和内容编辑者也看不到这个列表。

页面如何提供服务

静态每次发布渲染一次,并缓存在边缘。除非有需要,否则不带任何 JavaScript。
服务端每次请求时用服务端查询的最新数据渲染,依然可被完整索引。
岛屿只有绑定的文本、列表、表单和工作流会通过一个极小的运行时进行激活(hydrate)。

每个版本都有自己的缓存键,所以新发布绝不会提供过期页面。带访问规则的页面总是按请求渲染。页面之间的链接会被预取,因此无需单页应用,导航也几乎瞬间完成。

CMS 改动无需重新发布即可上线

发布一个 CMS 条目时,只会重新渲染读取其集合的页面,也就是模板页面和查询该集合的列表。修改集合的字段也会以同样的方式同步到线上站点。

发布前检查

编辑器会提醒你那些会破坏线上站点的问题,例如某个列表按其集合中已不存在的字段进行筛选。

下一步:SEO 与站点设置,然后连接你的域名。