状态与发布

最后更新:2026年7月3日

假设你要在服装网店里上架一件新商品"不锈钢保温杯 500ml"。即使你在内容工作室里填好了商品信息并保存,实际的网店页面上也看不到这个保温杯。因为"创建"和"展示给顾客"是两个不同的步骤。要让顾客看到它,还需要再做一次 Publish(发布)。

决定"展不展示"的,就是状态与发布。ContentMedia 这样的条目各自都带有当前所处的状态,而通过发布这个动作可以改变它的状态,把它传递给顾客。本页将讲解条目可以处于哪些状态、发布后会发生什么变化,以及如何在内容工作室里发布。

内容工作室与对外公开,两个位置

要理解状态,先记住条目所在的位置有两处就可以了。

  • 内容工作室:你和同一个 Space 的同事进行管理操作的界面。在这里,正在编写的条目和已经发布的条目都能看到。
  • 对外公开(传递):像实际网店页面那样展示给访客的位置。这里只会传递已经发布的条目。

发布就是把在内容工作室里创建的条目放到对外公开位置上的动作。保温杯商品如果只是在内容工作室里创建,那么它在内容工作室里能看到,但还没有上到对外公开位置。只有发布之后,它才会真正传递给访客。

打个比方,内容工作室是店铺里侧的工作间,对外公开位置是顾客看到的陈列柜。即使在工作间里把商品准备好了,也要再做一次把它摆到陈列柜上的动作,顾客才能看到。

条目可以处于的四种状态

每一个 Content 都带有一个表示它当前处于哪个阶段的状态。以保温杯商品为例,来看这四种状态。

状态含义是否传递到对外公开位置
Draft编写中。还从未发布过。不传递
Published发布完成。保存的内容与对外传递的内容一致。传递
Changed曾经发布过,但之后修改的内容还没有再次发布。传递上一次发布的内容
Archived归档处理。暂时从工作对象中移出的状态。不传递

第一次创建保温杯商品时,状态是 Draft。发布后变为 Published。把 Published 状态的保温杯价格改掉并保存,就会变为 Changed。而对于不再使用的条目,可以归档为 Archived 进行保存。

Media(上传的图片、视频等文件)也带有同样的四种状态。不过 Media 的发布步骤与 Content 不同。这一区别会在下文 Media 上传后会自动发布中单独讲解。

发布后会改变的东西

发布(Publish)是把在内容工作室里完成的内容导出到对外公开位置的动作。把保温杯商品发布后,状态会变为 Published,从那时起就可以在实际的网店页面上展示这件商品了。

发布会把创建那一刻的内容像拍一张照片一样定格下来,放到对外公开位置上。所以在发布之后即使你在内容工作室里改了保温杯的价格,对外传递的仍然是修改前发布的价格。要让顾客看到修改后的价格,就要再发布一次。这种"已经修改但还没有再次发布"的状态就是 Changed

Changed 是内容工作室与对外内容已经不一致的信号。把保温杯价格从 18000 改成 16000 并保存后,内容工作室里显示的是 16000,但传递给顾客的仍然是 18000。再次发布后,16000 才会传递给顾客。

每次发布都会留下一个版本

前面说过,发布会把创建那一刻的内容像拍一张照片一样定格下来,放到对外公开位置上。这样定格下来的照片就叫作版本(快照)。每发布一次,那个时点的保温杯商品内容就会留下一个版本;反复发布,版本就会一个一个累积起来,形成发布记录。

第一次把保温杯商品以 18000 发布时,"18000 的保温杯"会留下一个版本。之后把价格改成 16000 再次发布,"16000 的保温杯"又会累积一个版本。这样发布过两次的话,版本就是两个。

传递到对外公开位置的,永远是最近一次发布的版本。所以把 Published 状态的保温杯只是修改后保存(Changed),对外传递的仍然是上一次发布的版本;只有再次发布,才会生成新版本并传递给顾客。累积下来的过往版本,会作为"以前是用什么内容发布的"的记录留存。

版本(快照)是发布时生成的发布记录。在内容工作室里只保存而不发布,不会生成新版本。

在内容工作室里查看过往版本

过往版本在内容详情界面右侧的侧边栏里查看。打开保温杯商品后,右侧侧边栏的 发布历史 区域会以列表形式显示发布过的版本。

  1. 打开要查看过往版本的"不锈钢保温杯 500ml" Content
  2. 在右侧侧边栏的 发布历史 区域中选择要查看的版本。
  3. 点击 与当前版本比较 按钮,查看它与当前内容有何不同。

右侧侧边栏的发布历史。发布过的版本以列表形式显示,可以选择某个版本与当前内容比较

选择一个版本后,就可以把该版本的内容与当前内容并排比较。此界面不支持回退或还原,只能比较。

发布之前会检查规则

在发布的那一刻,会再次检查该条目是否完全遵守了在框架(Content Type)上设定的规则。如果像商品名这样的 必填 Field 为空,或者关联的代表图片在此期间被删除了,发布就会被拦截并显示错误消息。补上缺失的值,或者重新关联图片之后,再试一次即可。

这项检查在保存时和发布时都会生效。所以违反规则的条目既无法以 Draft 保存,也无法发布。这是一道防止错误数据传递给顾客的机制。

可以设定哪些规则(有效性检查),会在 Content 建模中讲解。

状态会随动作这样变化

每种状态都只会随你在内容工作室里所做的动作沿着既定的路径变化。以保温杯商品为例,整理如下。

  • 创建:新创建保温杯商品时,会变为 Draft
  • 发布(Publish:把 DraftPublishedChanged 状态的商品发布后,会变为 Published。但归档(Archived)的商品不能直接发布。
  • 修改后保存:把 Published 状态的商品修改后保存,会变为 Changed。把 Draft 状态的商品修改后保存,仍然是 Draft
  • 取消发布(Unpublish:把 PublishedChanged 状态的商品 Unpublish 后,它会从对外公开位置撤下,状态回到 Draft
  • 归档(Archive:只有 Draft 状态的商品才能归档为 Archived。解除归档后会重新变为 Draft
  • 删除:条目只有在 DraftArchived 状态时才能删除。处于发布中(Published)或还有未发布修改(Changed)的条目,要先 Unpublish 退回到 Draft,然后再删除。

取消发布和删除是不同的。 Unpublish 只是从对外公开位置撤下,条目本身仍以 Draft 留在内容工作室里,之后还可以再次发布。要彻底清除,需要在 Unpublish 之外另行删除。

在内容工作室里发布保温杯商品

现在来在内容工作室里发布处于 Draft 状态的保温杯商品,让它对外公开。这里假设"不锈钢保温杯 500ml"商品已经以 Draft 创建好了。

  1. 打开要发布的"不锈钢保温杯 500ml" Content
  2. 在右侧 状态 栏中,点击写有当前状态(Draft)的下拉菜单。
  3. 在展开的列表中点击 发布。(如果只想把不再使用的条目归档,请选择 归档。)

保温杯 Content 的状态栏。当前为 Draft,点击下拉菜单后展开了 Publish、Archive 菜单的样子

状态变为 Published 就说明发布成功了。从这时起,它会传递到对外公开位置,可以在实际页面上展示这件商品。

发布后状态变为 Published 的样子

发布之后再修改价格之类的内容,状态会变为 Changed。要把修改后的内容反映到对外,请用同样的方法再 发布 一次。

Media 上传后会自动发布

Media 也带有 DraftPublishedChangedArchived 四种状态,但第一次上传时的流程与 Content 不同。

Content 是在创建之后由人手动发布才会变为 Published。而 Media 在上传文件后,系统会处理该文件(提取图片尺寸信息等),处理完成后会自动把它变为 Published。所以上传保温杯代表图片时,即使不另外做发布动作,处理完成后它也会上到对外公开位置。

要把 Media 关联到保温杯商品这样的 Content 上,在该 Media 处理完成、变为 Published 之后再关联会更安全。上传图片与关联、处理流程会在 Media中讲解。

接下来要做的事

  • Content 编写与发布:分步讲解创建并发布保温杯商品的完整流程。
  • Media:讲解如何上传保温杯代表图片这样的 Media 并关联到 Content 上。
  • 角色与权限:讲解如何用角色来决定谁可以发布。
  • Content:讲解在程序中直接处理发布、取消发布时所需的请求格式、sys.status 这样的条目结构,以及版本(快照)列表的查询。