用Hexo+Vercel搭建属于自己的静态博客
前言
继续用Hexo,Vercel,无需服务器,无需备案,最好要域名,来搭建属于自己的静态博客,上次我们啥也没搭,我们继续搭。
我很久不用qq空间了,很怀念qq空间的日志功能(虽然没用过几次),可以发长文。但是现在支持存放长文的地方太少了,而且自定义功能都不足,不够我捯饬。也想过搞个站,但一直苦于租服务器太贵,也一直没有实施。
直到了解了静态博客,无需服务器也可以搭建一个个人博客。作为一个计算机知识基本为零的小白,也是成功照猫画虎搭出了一个还算能看的个人博客。这里写一篇分享,给各位苦于没有地方存放自己作品的同僚们一个指引。
我自己也特别菜,可能真的大佬看我的文章会觉得挺搞笑的,我只能说确实挺搞笑的orz,若有问题欢迎提出修改建议。
这是什么
首先介绍一下标题提到的Hexo和Vercel是个什么东西。

Hexo是一个静态博客框架,它可以将markdown文件渲染为网页,十分快速且轻量。说的通俗一点,就是它给了你一个框架,你不需要从头到脚写一个完整的网站,只需要写你的内容,顺便稍微修缮一下这个框架,再给它一个命令,它就可以将你填的文件自己打包好,变为人人可以查看的网页。
经过多年发展,Hexo已经形成了一个较为成熟的社群,官网有上百种用户开发的主题可以选择。
除了Hexo之外,也有其他一些静态网站框架,比如astro和hugo。astro比较新且更新勤快,但是我个人感觉对会前端的用户更友好一些,感兴趣可以去试试,这里选用Hexo是因为稍微比较省事
问题来了,自己精心做的网站怎么让别人看到?

Vercel就是一个免费提供静态托管服务的平台,它将我们打包好的网站放到平台上供人们浏览,并且能够快速部署并更新我们的博客。
前面说了Hexo的优点——快速、轻量且免费,但也有些小小的局限性需要注意一下:
- 因为要经过github,所以不可避免的会有网络问题(悲)
- 没有可视化界面,几乎全程都是对着代码编辑器和终端打字,不过习惯一下也还好。也有qexo、Hexohub、Hexo pro这类提供了可视化管理界面的外部工具,个人试用过感觉有一定的局限性
- 用别人的主题还好说,但是要自己写主题的话,框架太老会比较困难
事前准备
虽然说是一篇零基础经验分享,但最好还是要做好如下准备:
- 【必须】拥有一个github账号,且可以基本稳定地访问github。如果没有魔法,可以使用watt toolkit。
- 【必须】拥有一个vercel账号,直接使用上面的github账号注册,这样两个号可以关联,vercel可以直接导入你号里的库
- 【必须】一个代码编辑器,本文推荐并使用vscode
- 【可选但强烈建议】自己的域名。虽然托管服务自带一个免费的域名,但是太长又难看,而且国内访问速度极慢,所以强烈建议申请一个属于自己的域名,而且开销跟组服务器相比已经很便宜了。在阿里云和腾讯云都能申请到廉价的.xyz和.top域名,且只申请域名不用备案(但是据说有些地区无法访问未备案的廉价地名),也可以自己寻找免费申请域名的途径。
- 【可选】用于编辑markdown的软件,比如typora。不过直接用vscode就行。
- 一颗敢于折腾的心(),从入门到上线,最快也需要一整天的时间,而且就算网站成功部署上线,后期的维护也会十分费心费力。
另外如果你一边看hexo官方文档一边看本文,会发现两者有很多有出入的地方,因为官方文档太老了,七年前就有人在建议重写。如果不信我,也可以去参考其他人写的教程。
环境搭建
Hexo需要事先安装两个程序:Node.js和Git
首先安装Node.js — 在任何地方运行 JavaScript

运行安装程序,一路点next就行,不用管那些配置项,
然后win+r运行,输入“cmd”回车,打开终端,输入以下代码
1 | node -v |
这个命令用于查询版本号,如果弹出来一串数字,就说明安装成功了
然后安装Git - Git 版本控制系统

还是一样,一路next就安装结束了
在终端中验证一下是否安装
1 | git -v |
如果显示版本号,就ok了,然后再稍微配置一下。先前让你注册了一个github账号,记住用户名和邮箱,运行以下命令:
1 | git config --global user.name "此处填写你的Github用户名" |
双引号要保留,两个命令分开运行!
然后环境就算是配置成功了
创建Hexo项目
安装Hexo
大伙应该在前面Hexo的截图中看到了一串代码,还是在终端中,输入它
1 | npm install -g hexo-cli |
然后hexo就在你的电脑里创建好了,是不是很快
npm是node.js默认的包管理器,我这么说可能看不太明白什么意思,可以先理解为:别人在npm库上传了项目,你就可以通过npm install,将它的项目下载下来
如果npm下载速度太慢或者下载失败,可以试着将npm换为国内的淘宝镜像源
1 | npm config set registry https://registry.npmmirror.com |
创建项目
这里我们在Vercel直接创建项目,这样后期部署可以省很多事
原先可以直接在新建项目时选择hexo模板,但现在被撤下了,不过还是找到了一个入口
How to Deploy a Hexo Blog with Vercel | Vercel Knowledge Base

点击这里就可以用hexo模板创建项目了

这里在vercel创建工程的同时,会在你的github里创建一个包含项目文件的库。给库随便起个名,然后点击create
稍等片刻让他自己部署

现在就部署成功了

下滑点击continue to dashboard,就能看到你部署的网站了,domains下面的链接就是vercel分配给你的免费二级域名,点击就可以访问你的网站

但是如果你在没有魔法上网的情况下会发现,你点不开这个网站,因为vercel.app这个域名国内无法访问,而且这么长看着太不习惯了,所以强烈建议申请一个自己的域名。
但是现在博客在人家的平台上,我们要把它想办法拖到本地来编辑修改。点击顶栏的setting,进入git页

这个就是和你的hexo项目关联的库,点进去(应该已经登录了github账号),就是你刚才创建的hexo项目了

现在要把这个项目克隆到本地。找一个你想放置项目文件夹的地方,右键open git bush here,在终端输入如下命令
1 | git clone https://github.com/{{用户名}}/{{仓库名称}}.git |
其实复制库的链接,在后面加个.git就行,稍等一下项目文件夹就克隆好了
如果git无法连接,就试试加速器/设置git代理,后者请自行搜索设置方法
现在就可以进入我们的项目目录一探究竟了,这里我搬运一下利用Github与Vercel多端部署Hexo博客 | 白衣INK对各目录文件的详细解释
1 | #假设是E盘: |
先本地部署看一下成不成功
在项目文件夹右键打开bash,先运行npm安装一下依赖
1 | npm i |
还是在终端,执行如下命令
1 | hexo g |
此为缩写,全称为hexo generate,就是生成打包你的博客的静态网页文件,放在新建的public文件夹里
如果爆了很多warning,不用管,全当是氛围灯,不是error就行(
然后执行
1 | hexo s |
全称为hexo server,就是在本地服务器运行你的网站,通常用于部署前测试一下效果
成功弹出一行地址

这个就是你的网站在本地服务器的地址,按住ctrl点一下这个链接,就能看到你建立的网站了

已经迫不及待力(喜)
看够了就在终端按ctrl+c关闭服务器
博客的初步尝试
vscode的用前准备
这里是给第一次使用vscode的萌新看的,使用过vscode的可以直接跳过了
接下来就要用到代码编辑器了,接下来写文章和配置主题都要用到它,这里我们使用vscode
打开vscode后界面都是英文,我们现在给调成中文。点击侧边栏的extension(或者ctrl+alt+x)

搜索chinese,最上面那个应该就是官方的简体中文安装包,install它,然后启用,参照官方的设置方法,然后vscode就变成中文了

然后用vscode来打开你的项目目录,这里有几种办法
一个是打开一个空的vscode,将项目文件夹直接拖进去
或者打开项目文件夹,在顶部的路径栏直接输入cmd

就可以直接在这个文件夹打开终端,输入如下指令
1 | code . |
注意code和点之间有一个空格!
按下回车,就会自动在vscode打开项目文件夹
当然右键打开git bash输入同样指令也可以。
博客配置
首先对网站的信息进行初步的配置。打开_config.yml,参考配置 | Hexo来进行更改。这里列出一些最好要改的部分(没讲的部分可看文档自行了解)
网站基本信息:
1 | # Site |
下面的URL部分我们不用管,Directory是文件存放路径,我们也不要动
1 | # Writing |
剩下的就可以先不用管,包括deployment,我们用不上,可以等到后文配置主题再进行设置
写文章
我们先写篇文章来助助兴
除了上面两个方式之外,其实在vscode里也能打开终端,在vscode打开项目文件夹后,点击左下角的这一块

在弹出的底边栏,选项卡切换到终端,就可以在vscode中直接使用终端,不用在cmd和vscode窗口中来回切换了,我们接下来的大部分时间都要对着这个vscode
在终端中输入以下命令来创建文章
1 | hexo new "你的文章标题" |
回车一下你的文章就创建好了,文章一般会放在source/_posts文件夹里,打开创建的md文件,会看到开头有这么几句
1 | --- |
这是这篇文章的front-matter,放在文件开头,用于配置这篇文章的基本信息。具体请参照Front-matter | Hexo
hexo的博客文章使用markdown语言书写,具体的写法请自行上网搜索,这里不再赘述,很简单的(
文章写好后记得进行保存。
部署和更新博客
因为我们是直接在vercel上创建的项目,再通过github克隆到本地,所以部署是相当方便的。
当文章写好后,先运行
1 | hexo cl |
清除本地的缓存文件,然后
1 | hexo g |
生成静态文件,再
1 | hexo s |
在本地服务器运行一下看看有没有问题,如果有问题需要修改,注意改完后hexo cl和hexo g都要再运行一遍!
如果我们是本地初始化项目,就还要再来个hexo d,还要再搞一堆配置,不过我们不需要,把远程仓库同步一下就行。
然后再稍微做一下准备工作
创建SSH密钥
还是win+R打开cmd。输入以下命令
1 | ssh-keygen -t rsa -C "你的 GitHub 邮箱" |
再进入C:\Users\用户名\.ssh目录,能看到里面有一些无扩展名的文件(记得勾选显示隐藏文件)

用记事本打开id_rsa.pub文件,全选并复制里面全部内容
然后打开github,进入setting,打开如下界面

点击new ssh key,取名随意,将刚才复制的内容全部粘贴到下面的大框里,再点击add ssh key就ok了
完成添加后,在终端运行
1 | ssh -T git@github.com //后面是你的邮箱 |
如果出现如下文字
1 | Hi username! You’ve successfully authenticated, but GitHub does not provide shell access. |
就说明ok了,接下来开始正式部署
进行push
1 | git status |
还是在项目文件夹打开终端,先输入
1 | git status |
运行后显示如下

这里会显示该项目中已更改的文件,红色的字体即为已更改但还未加入暂存区的文件
暂存区是啥?就是它会暂时保存好你要push的文件,不过你得自己手动加进去
再运行
1 | git add . |
(注意,add和点之间有空格)
这个命令会将更改过的所有文件加入到暂存区中,也可以将指定文件加入,这个就自行去搜索吧
如果此时弹警告,就最好将你更改的文件关掉
再来一次
1 | git status |
就会发现字变绿,说明已经加入到了暂存区

然后运行
1 | git commit -m '注释' |
这个命令就是将暂存区的内容提交到本地仓库。注意后面的注释一定要写,一是要养成写版本日志的良好习惯,二是不写可能会出问题
运行成功后,再运行
1 | git branch -m master |
切换到主分支(?),然后
1 | git push -f origin master |
就是将更改推送,上传到远程仓库了
打开github看一下,会发现已经push成功了

进入vercel查看,发现部署成功

打开网站,我们的测试文章也已经有了

以后每次写好文章,都要按照这一部分的步骤重来一遍(ssh密钥不用),不过以后push那里只要运行
1 | git push |
就行了
但现在看,这个博客未免太过毛坯房了,还有域名,该怎么办呢????
能完成部署就已经ok了,剩下的主题配置和一些其他小知识就留到下一篇再说了。
常见问题
hexo g生成失败
说明你的配置文件或者文章有问题,对照终端显示的错误信息去更改
push报错无法连接SSH密钥
网络问题,多试几次
vercel部署报错代码127
在项目目录里删除package-lock.json和node_modules文件夹,运行npm i,重新安装依赖,再重新push
参考
使用 Hexo+GitHub+Vercel 搭建个人免费博客的最佳实践 | 春秋金经




