Payload CMS 与 Astro
PayloadCMS 是一个开源的 headless CMS(Content Management System,内容管理系统),可以用来为你的 Astro 项目提供内容。
与 Astro 集成
段落标题 与 Astro 集成前提条件
段落标题 前提条件在开始使用之前,你需要:
- 一个 Astro 项目 - 如果还没有 Astro 项目, 我们的 安装指南 将在短时间内帮助你启动并运行。
- 一个 MongoDB 数据库 - 在创建新项目时,PayloadCMS 会要求你提供一个 MongoDB 连接字符串。你可以在本地部署一个,也可以使用 MongoDBAtlas 在 Web 上免费托管数据库。
- 一个 PayloadCMS REST API - 创建一个 PayloadCMS 项目,并在安装过程中将其连接到你的 MongoDB 数据库。
在 PayloadCMS 安装过程中,系统会询问你是否要使用模板。
在此步骤中选择任何可用的模板(如 ‘blog’)都会自动为你生成附加的集合(collections)供你使用。否则,你需要手动创建 PayloadCMS 集合。
为你的 PayloadCMS 集合配置 Astro
段落标题 为你的 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 文件。
默认情况下,Astro 和 PayloadCMS 都会使用 4321 端口。你可能想要在 src/server.ts
文件中更改 PayloadCMS 的端口,别忘了也同时更新 src/payload.config.ts
中的 serverURL
。
获取数据
段落标题 获取数据通过你网站的唯一 REST API URL 和内容的路由来获取你的 PayloadCMS 数据。(默认情况下,PayloadCMS 将通过 /api
挂载所有路由。)然后,你可以使用 Astro 的 set:html=""
指令来渲染你的数据属性。
与你的帖子一起,PayloadCMS 将返回一些顶级元数据。实际的文章数据嵌套在 docs
数组中。
例如,显示文章标题和内容列表:
使用 PayloadCMS 和 Astro 创建博客
段落标题 使用 PayloadCMS 和 Astro 创建博客创建一个博客索引页面 src/pages/index.astro
,列出每篇文章并链接到其单独的页面。
通过 API 获取的返回结果是一个对象(posts)的数组,其中包括以下属性:
title
- 文章的标题content
- 文章的内容slug
- 文章的slug
使用 PayloadCMS API 生成页面
段落标题 使用 PayloadCMS API 生成页面创建一个页面 src/pages/post/[slug].astro
为每一篇文章动态生成一个页面。
发布你的网站
段落标题 发布你的网站要部署你的网站,请访问我们的部署指南,并按照你更喜欢的托管服务提供商的部署说明进行操作。
社区资源
段落标题 社区资源- 尝试这个 Payload CMS & Astro 模版。
- 查看 Astroad ,使用 Docker 进行 Payload CMS & Astro 开发和 VPS 部署。