Lazy loaded image
Michael Wong
hsiang
☀️❤️‍🩹💭🎞️
【旧文重置】简单搭建一个 GitHub Repo 静态博客的 CMS 后台内容管理系统

type
status
date
slug
summary
category
tags
icon
password
Serial
🚨
提示
#旧文重置。

前言

摘要

通过 Netlify CMS 搭建一个博客 CMS 分离的 Headless 的 CMS 系统~~可以对 Git Repo(包括 Private Repo)进行 Git Commit~也可以隐藏 CMS~

研究动机

一直想为博客搭建一个 CMS,这样一来不用每次都在电脑桌前打开恐怖的 VSCode 界面写文(主要是会回想之前被 CSS 和 Javascript 困住的恐怖日子),界面也比较雅观,比较赏心悦目。写文也更有动力

正文

Netlify CMS 的官方教程是把 CMS 系统部署在博客根目录下 /admin 里,但是这个方法不知道为什么对我好像无效。直到一天看到网上的一篇文章:Just 3 Steps: Adding Netlify CMS to Existing GitHub Pages Site Within 10 Minutes。这篇文章让我顿时两眼发光。一顿糊弄操作后居然成功了,现在来分享下其中的经历和方法。

第一步 - 创建一个 GitHub OAuth App

首先前往Github 的 Developer applications,然后点击 New OAuth AppApplication NameHomepage URL 可以随便填,但是 Authorization callback URL 须是 https://api.netlify.com/auth/done。然后点 Register application。这个 app 会在 CMS 中被你赋予权限,然后代你向 Repo 提交 Commit。

第二步 - 创建一个 Netlify CMS

在 GitHub 新建一个 Repo,名称和可见度随意,其后在 Repo 放入两个文件:

index.html

这是 Netlify CMS 的界面

config.yml

第三步 - 部署在 Netlify 上

进入 Netlify,创建一个与刚才 Repo 关联的项目。随后,前往 Site settings,修改 Site name 为你喜欢的名字(可以不修改)。然后把之前 config.ymlsite-name.netlify.com 中的 site-name 改为项目的 site-name(调整 site_domain 一致)(非常重要!没有调整一致后面会无法使用)记得要保存更改。
然后在 Netlify 项目中的 Access Control 里,滑到 OAuth 下的 Authentication providers,点击 Install provider,把之前创建的 OAuth app 的 Client IDClient Secret 贴上并 Install
之后访问项目的网址便能进入 Netlify CMS 了。你也可以在 Netlify 项目中的 Domain management 加上你自己的域名。

第四步(可选) - 映射博客静态文件到 Netlify CMS

由于博客和 CMS 是分离的,而且 CMS 是访问 CMS 域名目录下的文件,所以图片等的静态文件会丢失。
解决这个问题的办法很简单,就是为 CMS 系统添加一个重定向。Netlify 的 netlify.toml 便可实现。
以下是我的方案,可供参考:
留言区
( ? )
Copyright © Michael Wong 2025
NotionNext. Theme Boletim by vongipc.
开往 — 继续你的旅途