给 Astro 网站配置 Decap CMS 无头后端界面管理系统 - 最新图文完整步骤
🎉 本文将用图文详细介绍,怎么给 Astro 网站配置无头后端内容管理系统 Decap CMS,以像 Wordpress 那样,用直观的界面后台,来方便管理和创建新的文章,页面等内容。
前言
话说 Astro、Hexo、Hugo 等等静态站点虽然性能强劲,构建速度块,但是没有直观的后台界面管理和创建博文,还是非常不方便的。每次在本地编写 markdown 格式的文章时,还要编写前置元数据,那感觉像是在写代码似的。这次被 Ai 带进 Astro 这个架构的坑里之后,现在来完善最后一块,给 Astro 配置无头后端内容管理系统。
博主当前的网站,使用的是无服务器/VPS的白嫖方案,把站点内容托管在 Github 上,然后部署在 Cloudflare,整个过程全部免费。所以这次选择的无头后端也希望能集成到 Astro 中或是托管在 Cloudflare 上,查遍了目前流行的不流行的十来种无头后端CMS,确定尝试 Decap CMS。
当前网上关于 Astro 以及 Decap CMS 的相关内容并不多,尤其是想找个对应的图片来看看都比较困难,博主花费了很长时间才搭建完成,现在把整个过程整理好,图文并茂的分享给大家。
对了,其它静态博客架构,配置 Decap CMS 步骤差不多。 
Decap CMS 是什么?
简单来说,Decap CMS 是一个开源的、基于 Git 的内容管理系统(CMS)。前身是 Netlify CMS,它不像 WordPress 那样需要数据库(MySQL),而是直接通过 GitHub、GitLab 或 Bitbucket 的 API,将你编辑的内容以 Markdown、JSON、YAML 等格式直接 提交(Commit) 到你的代码仓库中。
核心优势:
- 无服务器/无数据库: 内容即代码。由于内容存在 Git 里,你不需要维护复杂的服务器环境。
- 对编辑友好: 虽然内容存为 Markdown,但编辑看到的界面是美观的 UI,支持实时预览和拖拽上传图片。
- 版本控制: 每一篇稿件的修改历史都在 Git 记录中,随时可以回滚。
- 适配性广: 它可以配合任何静态网站生成器(SSG),如 Hugo, Jekyll, Astro, Next.js, Gatsby 等。
- 有演示站,可以直接去体验一下!
工作流程
- 访问: 你在网站域名后加上
/admin(通常路径)进入后台。- 编辑: 在可视化界面编写文章、上传图片。
- 保存: 点击“发布”时,Decap CMS 会自动向你的 Git 仓库推送一个 Commit。
- 触发: Git 仓库的变更会触发你的 CI/CD 流程(如 Netlify 或 Vercel),网站自动完成构建并上线。
选择Decap CMS的理由也很简单:
- 可以部署在 Cloudflare 上 (或者说是集成到项目代码里了)
- 支持 Markdown
- 可以预览
最好能实时预览,或者次一点,点击后预览。毕竟编辑的时候,如果无法预览,格式错了都不知道,发布后要来回修改折腾 - 当然其实无法预览也有其它办法,这个下次再分享吧。
部署 Decap CMS
- 下载部署代码 : 去
github上这个地址:https://github.com/i40west/netlify-cms-cloudflare-pages 下载部署代码
- 上传代码
- 在 Astro 的
public目录下,上传admin文件夹,包含 :config.yml、index.html - 在
根目录下,上传functions/api文件夹,包含:apiauth.js、callback.js
- 在 Astro 的
- 编辑配置文件
config.yml,参考如下:
backend:
name: github
repo: AA/BB # 替换成你的真实的github用户名/仓库名
branch: main
site_domain: https://example.com # 替换成你的真实的网站地址
base_url: https://example.com # 替换成你的真实的网站地址
auth_endpoint: /api/auth
media_folder: "public/uploads"
public_folder: "/uploads"
collections:
- name: "blog"
label: "博客文章"
folder: "src/content/blog"
create: true
# 使用 filename 字段作为生成的文件名
slug: "{{fields.filename}}"
fields:
- {label: "文件名(不带.md)", name: "filename", widget: "string", required: true}
- {label: "标题", name: "title", widget: "string", required: true}其中具体的 collections 内容,可以让 Ai 根据你的博客的 markdown 前置字段来编写。
- GitHub OAuth App 配置:
点击 Github 右侧顶部的头像 - Settings - Developer settings (右侧底部) - OAuth Apps:
- 创建 Client ID
- 创建 Client secrets:复制保存待用 (仅显示1次)
- Application name:随意填写一个自己看得懂的
- Homepage URL:填写自己的网站链接地址,如 https://example.com
- Authorization callback URL:填写如:https://example.com/api/callback 很关键,填错了无法授权github进行登录
- 保存
- 登录后台
配置完成之后,就可以登录网站后台了,地址是:https://你的网站域名/admin 
点击 github 进行授权即可登录了,登陆后的界面是这样的,比较简洁清爽,大家看看,还行吗?左侧是文章集,中间是所有文章,右侧可以点击新建文章(中间也有新建按钮)。 
点击新建文章后,界面是这样的,说实话,博主感觉非常一般。
- 左侧输入元数据区,所占的空间太大了,一页都显示不完,有点喧宾夺主,一点都不紧凑,眼睛看着有点累。
- 右侧可以实时预览,但是吧,往下看可以看到,这个预览一点美感都没有,排版混乱;
- 正文编辑区本来是重点,结果它占比很小;注意,它可以自由切换富文本编辑和markdown编辑,这两种编辑方式;大家稍微试试就能发现
Decap cms对 markdown 的预览效果非常一般,如果用它来查看编辑效果,怕是要毁了。

好了,Decap cms 无头后端就是这个样子,想必大家看完本篇文章已经很清楚了。
避坑
- Github 仓库设置的修改,并不是实时生效的,最好等个1-2分钟,不然由于缓存的问题,导致你看不到修改后的效果,这可能会对调试造成很大障碍,小心在此浪费时间喔。




