从零开始:如何在 Cloudflare Pages 上部署 Hexo 博客并解决常见错误

从零开始:如何在 Cloudflare Pages 上部署 Hexo 博客并解决常见错误
Elegant部署 Hexo 博客到 Cloudflare Pages
Hexo 是一个流行的静态博客框架,Cloudflare Pages 是一个高效的静态网站托管平台。本文将介绍三种将 Hexo 博客部署到 Cloudflare Pages 的方法。
Cloudflare Pages 免费版本部署限制
如果你需要部署,可能需要先了解一下Cloudflare的部署限制,Cloudflare Pages 有以下限制:
- 每月构建数:500 次
- 自定义域名:100 个
- 每个 pages 最多包含 20,000 个文件
- 单个文件最大限制:25MB
- 每日限制函数请求数:100,000 次(和workers共用,超出后会访问失败)
- 静态文件请求次数:无限
方法一:通过 GitHub 进行自动部署
这种方法适用于希望利用 GitHub 进行代码托管和版本控制的情况。Cloudflare Pages 会从你的 GitHub 仓库中提取代码并自动部署。
步骤
1. 准备工作
确保你已经在本地安装了 Node.js 和 Hexo:
1 | npm install -g hexo-cli |
创建 Hexo 项目并在本地进行设置和编辑:
1 | hexo init my-blog |
1 | cd my-blog |
1 | npm install |
2. 初始化 Git 仓库
在 Hexo 项目的根目录下,初始化 Git 仓库并提交代码:
1 | git init |
1 | git add . |
1 | git commit -m "Initial commit" |
3. 创建 GitHub 仓库
- 登录 GitHub 并创建一个新的仓库。
4. 推送到 GitHub
将本地的 Hexo 项目推送到 GitHub 仓库:
1 | git remote add origin https://github.com/你的用户名/你的仓库名.git |
1 | git push -u origin main |
5. 配置 Cloudflare Pages
- 登录到 Cloudflare 仪表盘。
- 在账户主页选择左侧的“Workers 和 Pages”,点击“创建项目”。
- 选择“Pages”选项,连接到你的 GitHub 账户,并选择刚刚推送代码的仓库。
- 在构建设置中输入构建命令
npm run build
和发布目录public
。 - 完成配置并开始构建和部署。
6.注意事项
- Cloudflare Pages 有构建次数限制,次数到达上限可能会构建失败
方法二:通过 Fork 进行自动部署
这种方法适用于不希望使用自己的设备安装环境和项目,希望快速部署一个已经配置好的 Hexo 模板,并利用 Cloudflare Pages 进行自动部署。
步骤
1. Fork 仓库
- 访问 我的hexo模板 并点击“Fork”按钮,将其复制到你的 GitHub 账户下。
2. 配置 Cloudflare Pages
- 登录到 Cloudflare 仪表盘。
- 在账户主页选择左侧的“Workers 和 Pages”,点击“创建项目”。
- 选择“Pages”选项,连接到你的 GitHub 账户,并选择刚刚推送代码的仓库。
- 在构建设置中输入构建命令
npm run build
和发布目录public
。 - 完成配置并开始构建和部署。
3. 更新和维护
- 你可以直接在 GitHub 上编辑文件、修改文章或配置,Cloudflare会监控仓库变化并自动更新和部署。
4.注意事项
- Cloudflare Pages 有构建次数限制,次数到达上限可能会构建失败
- 部分主题或插件可能仍需要本地编辑后才能使用该方法
方法三:直接上传静态文件到 Cloudflare Pages
这种方法适用于你已经在本地生成了静态文件,并希望直接将这些文件上传到 Cloudflare Pages,或者是你的构建次数到达上限等不希望Cloudflare构建的时候
步骤
1. 准备工作
- 在本地安装并配置 Hexo。具体可以参考本文中方法一的步骤1。
2. 生成静态文件
在 Hexo 项目的根目录下运行以下命令以生成静态文件:
1
hexo generate
生成的静态文件将位于
public
文件夹中。
3. 手动上传到 Cloudflare Pages
- 登录到 Cloudflare 仪表盘。
- 在账户主页选择左侧的“Workers 和 Pages”,点击“创建项目”。
- 选择“Pages”选项,并选择“手动上传”。
- 选择
public
文件夹中的所有文件并上传。
4. 更新和维护
- 每次更新 Hexo 博客内容后,都需要重新生成静态文件并手动上传到 Cloudflare Pages。
5.注意事项
- 部分页面可能无法很好的重定向,如有需要请使用前面的方法
结论
- 方法一 适合希望利用 GitHub 进行代码管理和自动部署的用户。
- 方法二 适合希望快速启动并自动部署的用户,通过 Fork 的模板仓库简化部署流程。
- 方法三 适合希望完全控制生成文件的用户,适合静态文件管理和不使用 GitHub 的情况。
报错解决
1.报错hexo: not found
解决办法:Cloudflare文档中提到部署命令使用 hexo generate ,但是该命令会导致这个报错,请使用npm run build部署命令后重试。
2.报错npm ERR! code EUSAGE
如果报错信息包含:
1 | npm ERR! `npm ci` can only install packages when your package.json and package-lock.json or npm-shrinkwrap.json are in sync. Please update your lock file with `npm install` before continuing. |
根据翻译可得,只有当 package.json 和 package-lock.json 或 npm-shrinkwrap.json 同步时,npm ci
才能安装软件包。
解决办法:先用 npm install
更新package-lock.json,然后再继续。如果无法解决,检查 package.json 和 package-lock.json 内容是否同步。
资源