cms介绍
什么是CMS?,先上一段百科的解释:
内容管理系统(Content Management System,CMS),是一种位于WEB前端和后端办公系统或流程(内容创作、编辑)之间的软件系统。内容的创作人员、编辑人员、发布人员使用内容管理系统来提交、修改、审批、发布内容。这里指的“内容”可能包括文件、表格、图片、数据库中的数据甚至视频等一切你想要发布到Internet网站的信息。
随着个性化的发展,内容管理还辅助WEB前端将内容以个性化的方式提供给内容使用者,即提供个性化的门户框架,以基于WEB技术将内容更好地推送到用户的浏览器端。
简单来说,如果你需要一套快速管理内容发布和管理的系统,那我肯定会推荐你使用CMS,这将会大大减少你手动搭建系统带来的成本。而且CMS有很多成熟的框架可以使用,我们项目中使用的是strapi,如果不知道如何选择框架可以直接选择它。
cms项目背景
初期是为了方便的修改和发布app中使用的法律的协议,由于appStore严格的上线控制,所以准备将这部分改变频率较高的部分都放到CMS中进行管理,这样一来可以绕开繁琐的上线流程,二来可以更为方便的对内容进行管理。我们只需要在App中配置好对应的模板,基础页面的数据全部来源于CMS.即CMS提供内容,通过REST API或者GraphQL API方式即可拿到数据,再由APP模板进行组装,就可以非常动态的生成APP页面。
功能介绍
这里附上我项目使用的cms框架链接,它提供了丰富的功能能满足我们的各种基本需求。其中常用的插件包括:
- Documentation提供完整的使用文档
- Email插件提供快速邮件通知
- GraphQL让你快速调用接口(提供一个接口,可以查询所有数据。前端需要什么参数,-通过QL body传递,接口返回一样格式的数据)
- Internationalization提供国际化语言功能
- Sentry plugin作为一个哨兵插件,能帮你收集生产环境遇到的错误信息
- Upload 帮你快速实现文件的上传管理,我们项目中集成的是aws的s3
- User & permissions 可以帮你快速实现用户权限管理
使用方式
安装
- In a terminal, run the following command:
yarn create strapi-app my-project
# 'yarn create' creates a new project
# 'strapi-app' is the Strapi package
# 'my-project' is the name of your Strapi project
- 选择数据库安装类型
Quickstart (recommended)
,它使用默认数据库 (SQLite)Custom (manual settings)
,它允许选择您喜欢的数据库
- (仅限自定义安装类型)在数据库列表中,为您的 Strapi 项目选择一个数据库。
- (仅限自定义安装类型)命名项目的数据库。
上述安装指南仅涵盖使用 CLI 的基本安装选项。在创建新的 Strapi 项目时可以使用其他选项,例如:
--quickstart
:直接以quickstart方式创建工程。--template
:使用预制的 Strapi 配置创建一个项目(参见模板)。--typescript
/ :在TypeScript--ts
中创建一个项目。--no-run
: 防止 Strapi 自动启动服务器(与 结合使用--quickstart
)。
运行
要启动 Strapi 应用程序,请在项目文件夹中运行以下命令:
yarn develop
踩坑总结
-
如果发现界面不能成功配置各个role权限,需要手动将新增的collection type和single type的字段信息配置到对应的role的json文件中。注意再配置的过程请尽量保持按照type name 和 field name进行字段排序,否则会出现当前目录和数据库存储因顺序导致different问题。
-
当你新增了role配置信息后,需要到settings找到 CONFIG SYNC,然后进行数据同步配置,否则将不会生效。(different列表中,左侧内容为目录配置,右侧内容为数据库配置)
-
如果通过界面配置了显示的视图模板,保存后信息存储在数据库中,若希望将配置同步到代码,同样需要到 config sync 中找到对应type,执行export会生成对应配置修改到代码中,后续将代码推送到代码仓就可以实现配置同步。