静态网站生成和部署(二)项目构成和部署(Strapi + Vercle)

项目介绍

  • 使用 Gridsome 创建项目
  • 模板参考 startbootstrap-clean-blog
  • 使用 Strapi 管理内容,提供 API 和 GraphQL查询

Gridsome 是静态站点生成器,打包时可以通过 API 或 GraphQL 获取动态数据,生成对应的静态文件。

例如:获取一定数量的文章列表,生成每个文章的详情页。

Strapi 用于提供数据来源。

由于生成的是静态站点,当静态页面中的数据源发生变化,静态页面是不会自动更新的。

所以需要在部署时监听数据源变化,当数据发生变化时,通知Gridsome重新生成静态站点。

Strapi

介绍

Strapi (Bootstrap your API)是通用的CMS内容管理系统。

  • 快速生成CMS管理面板
  • 快速创建集合,例如文章、用户
  • 提供 RESTFul API 和 GraphQL 轻松获取数据
  • 内置用户系统,可以控制权限
  • 插件 - 可以轻松搭配 Gridsome
  • webhook - 可以关联钩子实现自动部署,例如 Vercel
  • 可以使用任意数据库类型,例如:Sqlite Mysql Mongodb

安装

Strapi 依赖 sharp,所以需要考虑网络环境并配置 C++ 编译环境。

网络环境可以修改镜像:sharp - Chinese mirror

C++ 编译可以安装:node-gyp 和 相应系统的编译套件

静态网站部署到Vercel

Gridsome 生成的静态网站可以部署到任意支持静态资源托管的 web 服务器,例如 Vercel。

Vercel 需要注册 或 Github授权登录,可以参考 Vercel 部署 NuxtJS 应用

登录后可以从Git仓库导入项目:Import Git Repository 或 Import Project:

静态网站生成和部署(二)项目构成和部署(Strapi + Vercle)

静态网站生成和部署(二)项目构成和部署(Strapi + Vercle)

填写Gridsome项目的仓库地址(注意不是分支地址):

静态网站生成和部署(二)项目构成和部署(Strapi + Vercle)

Continue 后继续配置:

静态网站生成和部署(二)项目构成和部署(Strapi + Vercle)

静态网站生成和部署(二)项目构成和部署(Strapi + Vercle)

如果编译过程失败,可以根据错误调整,重新 Deploy

编译完成:

静态网站生成和部署(二)项目构成和部署(Strapi + Vercle)

Strapi触发自动部署

Vercel 可以配置 Git Deploy Hooks。

Deploy Hooks 允许您触发给定分支的部署。

从项目的Settings进入:

静态网站生成和部署(二)项目构成和部署(Strapi + Vercle)

填写自定义的钩子名称,和配置的Git分支,然后创建。

静态网站生成和部署(二)项目构成和部署(Strapi + Vercle)

然后进入 Strapi 添加 webhook:

静态网站生成和部署(二)项目构成和部署(Strapi + Vercle)

静态网站生成和部署(二)项目构成和部署(Strapi + Vercle)

静态网站生成和部署(二)项目构成和部署(Strapi + Vercle)

保存后,修改数据,例如新建一篇文章。

此时 Vercel 就会重新打包编译,最终生成新的静态页面。

可以进入 Vercel 项目的 deployments 面板查看。

至此 Gridsome + Strapi + Vercel 自动部署完成。