内容历史(Content History)
(Growth 计划) (Enterprise 计划) (v5.0.0)
页面摘要: 内容历史存储文档的先前版本,使编辑者能够从内容管理器比较并恢复较早的状态。本文档讲解如何浏览和恢复工作流,以便快速回滚错误。版本仅针对在内容管理器中编辑的内容创建,在 Growth 方案中保留 14 天,在 Enterprise 方案中保留 30 天。
内容历史(Content History)功能位于 内容管理器(Content Manager)中,使你能够浏览并恢复使用 内容管理器 创建的文档的先前版本。
- Plan:CMS Growth 或 Enterprise 方案
- Role & permission:无
- Activation:默认可用(如已具备所需方案)
- Environment:在开发与生产环境中均可用
版本仅在通过管理面板中的 内容管理器修改文档时才会创建。以任何其他方式修改的内容都不会出现在该文档的内容历史中:这包括 REST API、GraphQL API、文档服务(Document Service)API、生命周期钩子(lifecycle hooks)、cron 任务,以及 strapi import 和 strapi transfer 命令。
内容历史并非对文档所做的每一次更改的记录。以编程方式写入的文档,例如由迁移脚本或调用 REST API 的集成所创建的文档,没有对应的版本,因此文档可能与其内容历史中列出的最新版本不一致。
若要追踪管理面板用户执行的操作,请使用 审计日志。
配置
唯一可配置的部分是版本在被删除前保留多长时间。
内容历史并非永久性归档。版本会被自动删除:每天午夜运行一次作业,删除每一个早于保留期(从每个版本的创建日期起算)的版本。
保留期由你所用方案的许可证定义:
| 方案(Plan) | 默认保留期 | 最长保留期 |
|---|---|---|
| CMS Growth | 14 天 | 14 天 |
| CMS Enterprise | 30 天 | 90 天 |
在 Growth 方案上无法延长保留期。 请联系 Strapi 销售团队 升级到 Enterprise 方案,该方案默认提供 30 天,并最多可延长至 90 天。
在引入 14 天默认值之前,已经在使用 30 天保留期的 Growth 项目会保留原设置。
:::caution 由保留作业删除的版本无法从内容历史界面恢复。 :::
基于代码的配置
保留期可以通过 /config/admin 文件的 history.retentionDays 参数缩短,但绝不能延长。当许可证和配置文件都定义了值时,取两者中较小的值生效。
JavaScript
module.exports = ({ env }) => ({
// … other configuration properties
history: {
retentionDays: 7,
},
});
TypeScript
export default ({ env }) => ({
// … other configuration properties
history: {
retentionDays: 7,
},
});
管理面板中没有等效的设置:保留期只能从 /config/admin 文件缩短。
使用
使用该功能的路径: 内容管理器(Content Manager) 从某个内容类型的编辑视图:点击 (右上角),然后点击 Content History(内容历史)。
浏览内容历史
借助内容历史,你可以通过以下方式浏览内容:
- 左侧的主视图,列出右侧边栏中所选版本的字段及其内容。
- 右侧的边栏,列出可用的版本总数,并且对于每个版本:
- 该版本的创建日期和时间,
- 创建它的用户,
- 以及其状态是 Draft(草稿)、Modified(已修改)还是 Published(已发布)(有关文档状态的更多信息,请参阅 草稿与发布)。

内容历史的主视图会明确说明某个字段在其他版本中是不存在、已被删除,还是已被重命名。对于所选版本未知的字段,会显示在其他字段下方一个 Unknown fields(未知字段) 标题下。
恢复先前版本
你可以选择恢复文档的先前版本。恢复某个版本时,该版本的内容会覆盖当前草稿版本的内容。文档会切换到 Modified(已修改)状态,之后你可以随时发布内容(请参阅 发布草稿)。
- 浏览内容历史,并通过右侧边栏选择一个版本。
- 点击 Restore(恢复) 按钮。
- 在 Confirmation(确认) 窗口中,点击 Restore(恢复)。
如果为内容类型启用了 国际化(i18n) 功能,恢复一个带有唯一字段(即对所有语言区域内容都相同的字段)的版本,将为所有语言区域恢复该字段的内容。
