PayloadCMS 是一个开源的 headless CMS(Content Management System,内容管理系统),可以用来为你的 Astro 项目提供内容。
与 Astro 集成
前置准备
在开始使用之前,你需要:
- 一个 Astro 项目 - 如果还没有 Astro 项目, 我们的 安装指南 将在短时间内帮助你启动并运行。
- 一个 MongoDB 数据库 - 在创建新项目时,PayloadCMS 会要求你提供一个 MongoDB 连接字符串。你可以在本地部署一个,也可以使用 MongoDBAtlas 在 Web 上免费托管数据库。
- 一个 PayloadCMS REST API - 创建一个 PayloadCMS 项目,并在安装过程中将其连接到你的 MongoDB 数据库。
为你的 PayloadCMS 集合配置 Astro
你的 Payload 项目模板的 src/collections/
路径下将包含一个名为 Posts.ts
的文件。如果你在安装过程中没有选择创建内容集合的模板,你可以通过手动添加此配置文件来创建一个新的 Payload CMS 集合。下面的示例展示了一个名为 posts
的内容集合,其中包含 title
、content
和 slug
字段:
-
将 Users
(所有 PayloadCMS 项目中都可用)和任何其他集合(例如 Posts
)导入并添加到 payload.config.ts
文件中的可用集合(collections)中。
这将使一个名为 “Posts” 的新集合出现在你的 PayloadCMS 仪表板中 “Users” 集合的旁边。
-
进入 “Posts” 集合并创建一篇新文章。在保存后,你会注意到 API URL 出现在右下角。
-
在本地 PayloadCMS 服务运行的情况下,在浏览器中打开 http://localhost:4321/api/posts
。你应该看到一个包含你创建的文章作为对象的 JSON 文件。
获取数据
通过你网站的唯一 REST API URL 和内容的路由来获取你的 PayloadCMS 数据。(默认情况下,PayloadCMS 将通过 /api
挂载所有路由。)然后,你可以使用 Astro 的 set:html=""
指令来渲染你的数据属性。
与你的帖子一起,PayloadCMS 将返回一些顶级元数据。实际的文章数据嵌套在 docs
数组中。
例如,显示文章标题和内容列表:
使用 PayloadCMS 和 Astro 创建博客
创建一个博客索引页面 src/pages/index.astro
,列出每篇文章并链接到其单独的页面。
通过 API 获取的返回结果是一个对象(posts)的数组,其中包括以下属性:
title
- 文章的标题
content
- 文章的内容
slug
- 文章的slug
使用 PayloadCMS API 生成页面
创建一个页面 src/pages/post/[slug].astro
为每一篇文章动态生成一个页面。
发布你的网站
要部署你的网站,请访问我们的部署指南,并按照你更喜欢的托管服务提供商的部署说明进行操作。
社区资源
更多 CMS 指南
Recipes