我是来吹 Cloudflare Pages 的

迁移博客到 Cloudflare Pages

薅羊毛,就要薅到底

Cloudflare 介绍页面

突然发现 Cloudflare 的新静态网页托管服务结束了内测,变得可用。考虑到现在站点是 Github Pages + Cloudflare CDN 搭建,于是干脆一不做二不休换成 Cloudflare Pages 算了。 没有中间商赚差价 我也不用粗暴的在每次 GitHub Actions 之后做一次缓存清除(以免 Cloudflare 缓存了旧的页面而没有及时更新)。

切换到 Cloudflare Pages 整体上很容易,在 Pages 页面点击那个大大的黄色的 Get Started 按钮,按照指引授权 GitHub 权限、选择构建使用的仓库、最后设置构建的命令就完成了迁移... 好吧,这是最简单的情况,适用于你的站点只需要最简单的命令即可构建时,例如下表中的框架:

框架 构建命令 输出目录
Angular (Angular CLI) ng build dist
Brunch brunch build --production public
Docusaurus npm run build build
Eleventy eleventy _site
Ember.js ember build dist
Gatsby gatsby build public
GitBook gitbook build _book
Gridsome gridsome build dist
Hugo hugo public
Jekyll jekyll build _site
Mkdocs mkdocs build site
Next.js (Static HTML Export) next build && next export out
Nuxt.js nuxt generate dist
Pelican pelican $content [-s settings.py] output
React (create-react-app) npm run build build
React Static react-static build dist
Slate ./deploy.sh build
Svelte npm run build public
Umi umi build dist
Vue npm run build public
VuePress vuepress build $directory $directory/.vuepress/dist

我想要运行自定义脚本!

那你就放一个 自定义脚本 在你的仓库里面呗。构建命令就是 ./build.sh, 记得加上 +x 权限。

相对于使用 GitHub Actions 部署有什么好处 / 坏处?

一方面 GitHub Actions 更快,Cloudflare Pages 的服务有时候会莫名其妙的卡几分钟到几十分钟在 正在初始化构建环境 阶段。但是 Cloudflare Pages 能优雅的处理 Pull Request 并且提供预览页面。

总之 Cloudflare 家大业大,并且是专门做网络服务的,做网页托管 应该 不会太菜吧。

另外 Cloudflare 的那个 Proxy 对于他们自己托管的页面不好使,可以看 discord 聊天记录 ,但是之后会修。还有些别的可能的坑可以看看 已知问题


本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 协议 。转载请注明出处,除非获得明示许可,禁止商用!