快速入门指南

页面摘要: 通过 12 个步骤从零开始构建并部署一个 Strapi 项目:使用 create-strapi@latest 创建本地项目,使用内容类型构建器定义集合类型,将项目推送到 GitHub 并从 Cloud 仪表板部署到 Strapi Cloud,然后通过内容管理器添加内容。

Strapi 提供了很大的灵活性。无论你是想快速上手并迅速看到最终结果,还是想更深入地了解产品,我们都能满足你。在本教程中,我们将采用 DIY 方式,从零开始构建一个项目和内容结构,然后将你的项目部署到 Strapi Cloud,以便从中添加数据。

跟踪你的进度

本指南分为可折叠的步骤。点击步骤标题可展开或折叠它,完成某一步后点击其右侧的圆圈将其标记为已完成。已完成的步骤会变为绿色,页面右下角的进度摘要会记录你的完成情况。

了解 Strapi 的 3 种方式

有 3 种方式了解 Strapi。选择最适合你的方式:

  • Strapi 提供 托管演示,你可以快速试用其内容管理器并学习如何编辑内容。在此托管演示中,Strapi 以生产模式运行,因此内容类型构建器 按设计被禁用。

  • 如果你想尝试一个功能齐全的应用(包含 Strapi 后端、Next.js 前端和示例数据),请在本地安装 LaunchPad 应用。

  • 如果你想学习如何从零开始,请遵循本快速入门指南。

WARNING

安装 Strapi 之前,你的电脑上必须安装以下依赖:

  • Node.js:仅支持 Active LTS 或 Maintenance LTS 版本(当前为 v22、v24 和 v26)。Node 的奇数版本,即所谓的"current"版本,不受支持(如 v23、v25)。
  • 你偏好的 Node.js 包管理器:
    • npm(v6 及以上)
    • pnpm(在 Strapi Cloud 上,Corepack 会匹配项目 package.json 的 packageManager 字段中固定的 pnpm 版本,若未固定则使用 Corepack 内置默认版本)
  • Python(如果使用 SQLite 数据库)
  • 受支持的 Web 浏览器:管理面板面向匹配默认 Browserslist 查询的浏览器:last 3 major versions、Firefox ESR、last 2 Opera versions、not dead。参见 browsersl.ist 了解当前覆盖矩阵。项目可以通过项目根目录的 Browserslist 配置覆盖这些默认值。

你还需要 安装 git,并拥有一个 GitHub 账户,以便将你的项目部署到 Strapi Cloud。

A 部分:使用 Strapi 创建新项目

我们将首先在终端中运行命令在你的机器上创建一个新 Strapi 项目,然后注册我们的第一个本地管理员用户。

点击可切换的内容以阅读更多说明,按以下步骤操作。

步骤 1:运行安装脚本并创建 Strapi Cloud 账户

  1. 在终端中运行以下命令:

    NPM

    npx create-strapi@latest my-strapi-project
    
  2. 终端会提示你登录或注册。完成后,(Growth 计划) 方案的 30 天试用将自动应用到你的项目。出于本教程的目的,请确保在终端中选择了 Login/Sign up(登录/注册),或使用方向键选择它并按回车。

  3. 在打开的新浏览器标签页中,确保确认码与终端中的一致,然后点击 Confirm(确认)。

  4. 仍在浏览器标签页中,点击 Continue with GitHub(使用 GitHub 继续)。如果你当前浏览器会话尚未登录 GitHub,可能会被重定向到 GitHub 登录页面。

  5. 登录后,浏览器会显示 "Congratulations, you're all set!"(恭喜,一切就绪!)消息,你可以安全地关闭浏览器标签页并返回终端。

    登录 GIF

  6. 终端现在会问你几个问题。按 Enter 接受所有问题的默认答案。

    Questions and answers from the terminal

如你将在终端中看到的,你的项目正在本地构建。

INFO
  • 你的项目文件夹将包含一个 .strapi-cloud.json 文件,用于将你机器上的本地 Strapi 项目链接到 Strapi 服务器。
  • 还有更多安装选项可用。详情请参阅 安装文档。

步骤 2:注册第一个本地管理员用户

安装完成后,你需要启动服务器。在终端中,键入或复制粘贴以下内容:

cd my-strapi-project && npm run develop

你的浏览器会自动打开一个新标签页。

TIP

只要你停留在 my-strapi-project 文件夹中,任何时候想再次启动 Strapi 服务器,只需运行 npm run develop 即可。

通过填写表单,你创建了自己的账户。完成后,你将成为此 Strapi 应用的第一个管理员用户。欢迎加入,指挥官!

你现在可以访问 管理面板:

管理面板截图:仪表板

Congratulations!

你刚刚创建了一个新的 Strapi 项目!你可以开始把玩 Strapi,并自行探索 内容管理器,或者继续下面的 B 部分。

B 部分:使用内容类型构建器构建内容结构

安装脚本刚刚创建了一个空项目。我们现在将引导你创建一个小型餐厅目录。

本地 Strapi 项目的管理面板运行在 http://localhost:1337/admin。你将在这里花费大部分时间来创建和更新内容。

首先我们将为你的内容构建内容结构。这只能在开发模式下进行,而开发模式是本地创建项目的默认模式。

TIP

如果服务器尚未运行,请在终端中 cd 进入 my-strapi-project 文件夹并运行 npm run develop 启动它。

你可能还需要在 develop 命令之前运行 npm run build,尤其是在构建网站很重要的情况下,例如对于 TypeScript 项目。

内容类型构建器帮助你创建内容结构。使用 Strapi 创建空项目时,这里就是派对开始的地方!

你的餐厅目录最终会包含许多餐厅,因此我们需要创建一个 "Restaurant" 集合类型。然后我们可以描述在添加新餐厅条目时要显示的字段:

  1. 在管理面板左侧的主导航中,前往 内容类型构建器。
  2. 点击 Collection types(集合类型)旁边的 加号图标。
  3. 在 Display name(显示名称)中输入 Restaurant,然后点击 Continue(继续)。
  4. 点击 Add new field(添加新字段)按钮,并选择 Text(文本)字段。
  5. 在 Name(名称)字段中输入 Name。
  6. 切换到 Advanced Settings(高级设置)标签页,并勾选 Required field(必填字段)和 Unique field(唯一字段)设置。
  7. 点击 Add another field(添加另一个字段)。
  8. 在列表中选择 Rich text (Blocks)(富文本(块))字段。
  9. 在 Name 字段下输入 Description,然后点击 Finish(完成)。
  10. 最后,点击 Save(保存)并等待 Strapi 重启。

GIF:在内容类型构建器中创建 Restaurant 集合类型

Strapi 重启后,"Restaurant" 会列在导航中的 Content Manager(内容管理器)> Collection types(集合类型) 下。哇,你刚刚创建了你的第一个内容类型!太酷了,我们现在再创建一个,只是为了乐趣。

如果我们的餐厅目录有一些分类,会更有条理。让我们创建一个 "Category" 集合类型:

  1. 在主导航中前往 内容类型构建器。
  2. 点击 Collection types 旁边的 加号图标。
  3. 在 Display name 中输入 Category,然后点击 Continue。
  4. 点击 Add new field 按钮,并选择 Text 字段。
  5. 在 Name 字段中输入 Name。
  6. 切换到 Advanced Settings 标签页,并勾选 Required field 和 Unique field 设置。
  7. 点击 Add another field。
  8. 选择 Relation(关系)字段。
  9. 在中间,选择代表 "many-to-many"(多对多)的图标 icon many-to-many。
  10. 在右侧,点击 Category 下拉菜单并在列表中选择 Restaurant。文本应显示为 Categories has and belongs to many Restaurants(分类与多个餐厅存在多对多关系)。

管理面板截图:关系

  1. 最后,点击 Finish,然后点击 Save 按钮,并等待 Strapi 重启。
Congratulations!

你刚刚为你的 Strapi 项目创建了一个基础内容结构!你可以继续把玩 内容类型构建器,或者继续下面的 C 和 D 部分,了解 Strapi Cloud 并向你的项目添加实际内容。

TIP

虽然我们在这里展示了如何手动创建内容结构,但还有其他可选方案可供探索:你可以导入 Figma 原型、从计算机导入一些文件,甚至用自然语言向 Strapi AI (Growth 计划) 发出提示,让它为你创建内容。欢迎尝试!

C 部分:部署到 Strapi Cloud

既然你漂亮的第一个 Strapi 项目已在本地运行,是时候让全世界看到它的实时状态了!托管你的项目最直接的方式是使用 Strapi Cloud。

我们建议从 Strapi Cloud 仪表板 部署。本指南将引导你将本地项目推送到 GitHub,然后从仪表板创建并部署 Strapi Cloud 项目。

步骤 5:将你的项目推送到 GitHub

如果你的本地 Strapi 服务器仍在运行,请按 Ctrl-C 停止它。

从仪表板部署需要你的项目托管在 GitHub 仓库上。像对其他任何代码仓库一样,将你的本地 Strapi 项目推送到 GitHub(如有需要,请参阅下面的附加说明)。

将你的 Strapi 项目代码推送到 GitHub 的步骤:

  1. 在终端中,确保你位于所创建的 Strapi 项目所在文件夹。
  2. 运行 git init 命令为这个文件夹初始化 git。
  3. 运行 git add . 命令将所有已修改文件添加到 git 索引。
  4. 运行 git commit -m "Initial commit" 命令提交所有更改。
  5. 登录你的 GitHub 账户并创建新仓库。为新仓库命名,例如 my-strapi-project,并记住该名称。
  6. 回到终端,将本地仓库推送到 GitHub:

a. 运行类似下面的命令:git remote add origin git@github.com:yourname/my-strapi-project.git,请将 yourname 替换为你的 GitHub 个人资料名,将 my-strapi-project 替换为第 5 步中实际使用的名称。

b. 运行 git push --set-upstream origin main 命令,最终将提交推送到你的 GitHub 仓库。

更多关于在命令行使用 git 的信息,请参阅官方 GitHub 文档。

步骤 6:创建并部署你的 Strapi Cloud 项目

既然你的项目已托管在 GitHub 上,让我们从仪表板创建并部署你的 Strapi Cloud 项目:

  1. 前往 Strapi Cloud 登录页面,使用 GitHub、Google、GitLab 或一次性密码登录。
  2. 在 Projects(项目)页面,点击 Create project(创建项目)。
  3. 选择一个方案并连接你刚使用的 GitHub 账户。从列表中选择新创建的仓库。
  4. 填写你的项目设置(显示名称、分支、区域)并完成订阅步骤。
  5. 确认项目创建。Strapi Cloud 会将你重定向到你的项目仪表板,你可以在那里关注首次部署。

有关详细说明和截图,请参阅 使用 Cloud 仪表板部署项目 指南。

部署完成后,点击右上角的 Visit app(访问应用)按钮以访问你已部署的 Strapi 项目。

访问 Strapi Cloud 应用 GIF

Congratulations!

现在你的项目已托管在 Strapi Cloud 上并可在线访问。你可以通过阅读 其专用文档 了解更多关于 Strapi Cloud 的内容,或者继续 D 部分以登录你的在线 Strapi 项目并从中添加你的第一批数据。

TIP

欢迎进一步把玩内容类型构建器,为你的内容类型添加更多字段或创建新的内容类型。每当你进行此类更改时,将它们推送到 GitHub 以触发 Strapi Cloud 上的新部署(如果你在项目创建期间启用了 Deploy on push(推送即部署)),或者从 Cloud 仪表板 手动触发部署。你也可以使用 Cloud CLI 从终端部署。

D 部分:使用内容管理器向你的 Strapi Cloud 项目添加内容

既然我们已经创建了一个包含 2 个集合类型("Restaurant" 和 "Category")的基础内容结构,并将你的项目部署到了 Strapi Cloud,让我们使用 Cloud 通过创建新条目来实际添加内容。

步骤 7:登录你的新 Strapi Cloud 项目的管理面板

既然你的 Strapi Cloud 项目已创建,让我们登录该项目:

  1. 从你的 Strapi Cloud 仪表板 中,点击 my-strapi-project 项目。
  2. 点击 Visit app 按钮。
  3. 在打开的新页面中,填写表单以创建此 Strapi Cloud 项目的第一个管理员用户。

登录我们的第一个 Strapi Cloud 项目后,我们现在将从那里添加数据。

关于用户和 Strapi Cloud 项目的附加信息与提示:
注意:本地用户与 Strapi Cloud 用户是不同的

你的 Strapi Cloud 项目和本地项目的数据库是不同的。这意味着数据不会从你的本地项目自动传输到 Strapi Cloud。这包括你之前在本地创建的用户。这就是为什么你在首次登录 Strapi Cloud 项目时被要求创建一个新的管理员账户。

提示:直接访问你的 Strapi Cloud 项目的管理面板

任何托管在 Strapi Cloud 上的项目都可从其自有 URL(类似 https://my-strapi-project-name.strapiapp.com)访问。要访问你在线项目的管理面板,只需在 URL 后添加 /admin,例如 https://my-strapi-project-name.strapiapp.com/admin。URL 可以在你的 Strapi Cloud 仪表板中找到,你也可以在那里通过点击你的项目名称然后点击 Visit app 按钮直接访问你的 Strapi Cloud 项目。

步骤 8:为 "Restaurant" 集合类型创建一个条目

  1. 在导航中前往 Content Manager(内容管理器)> Collection types(集合类型)- Restaurant。
  2. 点击 Create new entry(创建新条目)。
  3. 在 Name 字段中输入你最喜欢的本地餐厅名称。假设是 Biscotte Restaurant。
  4. 在 Description 字段中,写几句关于它的描述。如果缺乏灵感,可以使用 Welcome to Biscotte restaurant! Restaurant Biscotte offers a cuisine based on fresh, quality products, often local, organic when possible, and always produced by passionate producers.
  5. 点击 Save。

截图:内容管理器中的 Biscotte Restaurant

该餐厅现在列在 Content Manager 的 Collection types - Restaurant 视图中。

步骤 9:添加分类

让我们前往 Content Manager > Collection types - Category 并创建 2 个分类:

  1. 点击 Create new entry。
  2. 在 Name 字段中输入 French Food。
  3. 点击 Save。
  4. 返回 Collection types - Category,然后再次点击 Create new entry。
  5. 在 Name 字段中输入 Brunch,然后点击 Save。

GIF:添加分类

"French Food" 和 "Brunch" 分类现在作为草稿列在 Content Manager 的 Collection types - Category 视图中。

现在,我们将为一个餐厅添加一个分类:

  1. 在导航中前往 Content Manager > Collection types - Restaurant,并点击 "Biscotte Restaurant"。
  2. 在页面底部的 Categories(分类)下拉列表中,选择 "French Food"。滚动回页面顶部并点击 Save。

步骤 10:设置角色与权限

我们刚刚添加了一个餐厅和 2 个分类。现在我们有足够的内容可供消费(双关语)。但首先,我们需要确保内容可以通过 API 公开访问:

  1. 点击主导航底部的 _ Settings(设置)_。
  2. 在 Users & Permissions Plugin(用户与权限插件) 下,选择 Roles。
  3. 点击 Public(公共)角色。
  4. 在 Permissions(权限)下向下滚动。
  5. 在 Permissions 标签页中,找到 Restaurant 并点击它。
  6. 点击 find 和 findOne 旁边的复选框。
  7. 对 Category 重复:点击 find 和 findOne 旁边的复选框。
  8. 最后,点击页面顶部的 Save。

截图:用户与权限插件中的公共角色

步骤 11:发布内容

默认情况下,你创建的任何内容都保存为草稿。让我们发布我们的分类和餐厅。

首先,导航到 Content Manager > Collection types - Category。从那里:

  1. 点击 "Brunch" 条目。
  2. 在下一个屏幕上,点击 Publish(发布)。

然后,返回分类列表,对 "French Food" 分类重复操作。

最后,要发布你最喜欢的餐厅,请前往 Content Manager > Collection types - Restaurant,点击 "Biscotte Restaurant" 条目,并 Publish 它。

GIF:发布内容

步骤 12:使用 API

好了,亲爱的美食家,我们刚刚完成了内容的创建并使其可通过 API 访问。你可以给自己鼓个掌——但你还未看到你辛勤工作的最终成果。

看这里:餐厅列表应该可以通过访问你的 Strapi Cloud 项目 URL 的 /api/restaurants 路径来访问(例如 https://beautiful-first-strapi-project.strapiapp.com/api/restaurants)。

现在就试试吧!结果应该类似于下面的示例响应 👇。

点击我查看 API 响应示例:

{
  "data": [
    {
      "id": 3,
      "documentId": "wf7m1n3g8g22yr5k50hsryhk",
      "Name": "Biscotte Restaurant",
      "Description": [
        {
          "type": "paragraph",
          "children": [
            {
              "type": "text",
              "text": "Welcome to Biscotte restaurant! Restaurant Biscotte offers a cuisine based on fresh, quality products, often local, organic when possible, and always produced by passionate producers."
            }
          ]
        }
      ],
      "createdAt": "2024-09-10T12:49:32.350Z",
      "updatedAt": "2024-09-10T13:14:18.275Z",
      "publishedAt": "2024-09-10T13:14:18.280Z",
      "locale": null
    }
  ],
  "meta": {
    "pagination": {
      "page": 1,
      "pageSize": 25,
      "pageCount": 1,
      "total": 1
    }
  }
}
Congratulations!

现在你的内容已创建、已发布,并且你拥有通过 API 请求它的权限。继续创作精彩内容吧!

提示:在你的本地和 Strapi Cloud 项目之间传输数据

你的 Strapi Cloud 项目和本地项目的数据库是不同的。这意味着数据不会在你的 Strapi Cloud 和本地项目之间自动同步。你可以使用 数据管理系统 在项目之间传输数据。

接下来呢?

后续步骤

探索管理面板

连接前端

部署到生产环境