多门户间同步2sxc Content Types的当前最优方法
多门户2sxc内容类型同步的最优方案
核心方案:使用2sxc的「App Shared Content Types」(共享内容类型)
这是当前官方推荐的替代过时Ghost Content Types的方案,专门解决多门户/多站点的内容类型同步需求。
具体实现步骤
- 创建共享内容类型库:在主门户(或专门的共享门户)的2sxc管理界面中,创建一个专门用于存放共享内容类型的App,将需要同步的Content Types定义在这个App里。
- 在其他门户引用共享类型:在目标门户的2sxc App中,通过「Add Existing Content Type」功能,选择来自共享App的内容类型,使用引用而非复制的方式。这样所有引用的门户都会共享同一个类型定义,修改共享App里的类型,所有引用的门户会自动同步更新。
- 权限控制:确保共享App的权限设置为其他门户的管理员可以访问引用,同时限制普通用户修改共享内容类型的权限,避免误操作。
辅助方案:使用代码模板批量同步(适合复杂场景)
如果需要更灵活的自定义同步逻辑(比如定时同步、过滤特定类型),可以通过2sxc的API实现:
- 编写C#代码,利用
App.ContentTypesAPI读取主门户的内容类型定义。 - 将定义序列化后,通过Dnn的跨门户API写入到目标门户的App中。
- 可以将代码封装成2sxc的后台定时任务,实现自动同步。
注意事项
- 避免直接复制内容类型:复制后的类型是独立的,后续修改不会同步,必须使用引用方式。
- 测试兼容性:在正式部署前,测试共享内容类型在不同门户的App中是否能正常关联数据、使用模板。
- 版本控制:建议将共享内容类型的定义导出为JSON文件,纳入版本控制,方便回溯和批量部署。
内容的提问来源于stack exchange,提问作者Laura Pierson
相关产品推荐
相关产品推荐

