写在前面

本站已迁移至 Vercel 页面托管服务,博客链接更新为 blog.im0o.top

什么是 Vercel

Vercel 类似于 github page,但远比 github page 强大,速度也快得多得多,而且将 Github 授权给 Vercel 后,可以达到最优雅的发布体验,只需将代码轻轻一推,项目就自动更新部署了。

这意味着,你无需配置繁琐的 Github Actions,只需要将代码推送至你的仓库(可以是私有的),Vercel 会自动克隆代码并按照设定的方式部署。

什么是 Hexo

Hexo 是一个基于 Node.js 的博客框架,它可以轻松地创建博客,并且支持 Markdown 语法。

准备工作

在开始部署之前,需要先安装 Node.js、Git、yarn(如果需要)、hexo,并且拥有一个有效的 Github 账户。

如果你使用的是 Windows 系统,需要安装 Git for Windows

安装 Node.js

你可以通过以下方式安装 Node.js:

  • 官方安装方式

    直接下载安装 Node.js。

  • 使用 scoop 包管理器安装 Node.js

    如果你使用 scoop 包管理器,需要先安装 scoop 包管理器,然后在命令行中执行 scoop install nodejs 命令即可。

  • 使用其他包管理器安装 Node.js

image-20211119200043508

安装 Hexo

你可以参考 文档 | Hexo 中的步骤进行安装。

使用以下指令,即可通过 Yarn 包管理,进行全局安装 hexo 脚手架。

1
2
3
4
# Yarn
yarn global add hexo-cli
# Npm
npm install hexo-cli -g

以下为安装日志,安装成功后使用 hexo -v 即可查看安装好的 hexo-cli 的版本。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
PS ->yarn global add hexo-cli
yarn global v1.22.17
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...

success Installed "hexo-cli@4.3.0" with binaries:
- hexo
Done in 11.01s.

PS ->hexo -v
hexo-cli: 4.3.0
os: win32 10.0.19041
node: 16.13.0
v8: 9.4.146.19-node.13
uv: 1.42.0
zlib: 1.2.11
brotli: 1.0.9
ares: 1.17.2
modules: 93
nghttp2: 1.45.1
napi: 8
llhttp: 6.0.4
openssl: 1.1.1l+quic
cldr: 39.0
icu: 69.1
tz: 2021a
unicode: 13.0
ngtcp2: 0.1.0-DEV
nghttp3: 0.1.0-DEV

初始化 Hexo 项目

新建一个文件夹,用于存放你 Hexo 博客的所有内容。

输入以下指令,初始化该文件夹为一个 Hexo 博客项目。

首先使用 git init 将其初始化为一个 Git 项目,便于后续上传到仓库进行自动构建。

1
2
PS > git init
PS > hexo init

你可以使用指令 hexo shexo server 在本地运行你的博客,默认地址为 localhost:4000 ,用浏览器打开即可看到你的博客,与一篇默认的 Hello World 文章。

image-20211119202401759

本篇的重点不在搭建 Hexo 博客上,与本地的 Hexo 有关内容到此结束

新建 Github 仓库

新建一个 Github 仓库,用于存放博客源码,这个仓库可以是私有(Private)的,也可以是公开(public)的。

image-20211120180825316

将本地博客 push 到你刚刚新建的 Github 仓库中。

1
2
3
4
5
PS > git add .
PS > git commit -m "first commit"
PS > git branch -M main
PS > git remote add origin https://github.com/你的仓库地址.git
PS > git push -u origin main

部署好后即可在仓库中看到你的 hexo 源码

image-20211120181518872

将源码部署至 Vercel

Login – Vercel 登录你的 Vercel(推荐选择 Continue with Github,使用 Github 登录)

image-20211120181623985

点击 dashboard 中的 New Project 即可新建一个 Vercel 项目。

image-20211120182745063

image-20211120182804041

你可以在这里看到你最近新建的仓库,点击仓库右边的 Import 按钮,导入仓库至 Vercel。

image-20211120182903730

Vercel 自动识别了这个仓库是一个 Hexo 项目,如果你没有对你的 Hexo 项目做更改,可以直接使用默认配置,直接点击 Deploy 按钮部署。

成功部署后的页面如下。

image-20211120183109037

点击 Go to Dashboard,即可前往该项目的控制面板。

image-20211120183158265

DOMAINS 下的链接即为你的博客的访问链接,左边为该网站的预览图片。

解析域名至 Vercel

你可以点击 Vercel 项目中的 Settings -> Domains,将你的域名解析至 Vercel 部署的网页上。

image-20211120183351987

输入你的域名(可以是二级域名)后点击右方的 Add 按钮,即可绑定域名至该项目.

image-20211120183529536

此时,页面提示了 Invaild Configuration,原因是域名没有解析至 Vercel。

推荐使用 CNAME 记录进行解析。

按图中样式,添加一个 CNAME 记录,记录名为 testblogproject(本例为这个),记录值为 cname.Vercel-dns.com。

如果是 CloudFlare DNS,不要使用 CF 代理(因为 Vercel 本身速度足够快了,如果用 CF 代理,访问速度反而会变慢)。

image-20211120183907656

保存后刷新 Dashboard-Settings-Domains 页面,你可以看到该域名不再报错,且正在生成 SSL证书。

image-20211120184014215

访问 testblogproject.im0o.top,看到先前测试时的页面,证明部署成功了。

image-20211120184115590

更新博客内容

以后更新博客,只需要在本地写好内容,将代码推到 Github 仓库,Vercel 会自动编译部署最新的代码(在默认分支)。