回顾
1️⃣ 「小白教程」Hexo静态博客1 —— 安装篇
2️⃣ 「小白教程」Hexo静态博客2 —— 基本命令、效果(画饼)篇
前言
对于Hexo博客的部署,主要有两种方法,一种是最为常用的部署到Github仓库,在经过Github Page展现为一个网站。另一种则是在你个人的VPS上建立一个Github仓库,部署到VPS的Github仓库中去后访问你的VPS来获得静态网页文件。
对于前者,优势在于是完全免费的(如果不绑定域名的话),但是每次Deploy后都会有一段三四分钟的更新时间,无法非常实时的更新。同时,Github Page对于上传的文件总大小以及当个文件大小均有一定限制(详见Github官网)。对于后者,可以克服Github Page的所有缺点,但是租用VPS会产生一定的花费,能否直连也取决于你的VPS的线路。你可以根据自己的需求在两者之间做出取舍。但是对于我个人而言,部署到VPS上显然更加方便,只要Git完成后网页就立刻可以看到变化,速度甚至比$ hexo -s
更快,并且也不需要担心因为浏览器缓存的原因而导致刷新后依旧无法显示更新过后的内容。但如果你追求的是零成本搭建博客,Github Page也不失为一个很好的选择。
总之,部署到自己的服务器上还是首选。
下面,先介绍Github Page的部署方式。至于VPS部署,下次再✍了,毕竟能多水一篇就多水一篇,等有空了再把部署到VPS写下来(可简单可复杂)
部署到Github Pages
设置Git用户名和邮箱地址
git config --global user.name "username"git config --global user.email "useremail"
替换其中的username
和useremail
创建Github仓库
首先你得注册一个Github账号(毫无疑问而且毫无难度,注册过程不再赘述)。注册完成后进入主页,并且进入Repositories界面,点击右上角的New按钮新建一个仓库。Repository name和Description可以随便填。但是需要注意的是,如果你手上没有域名并且想访问你的博客,则Repository name一定要是你的用户名
.github.io,如果你有域名则可以随便填,绑定域名会在后期设置。、
配置Gihub仓库的访问
这里会有两个思路,一个是在Github上创建密钥,另一个是在本地创建密钥。
在Github上创建密钥
创建Github仓库访问秘钥
在Github主页点击你的头像,进入setting,再点击左侧最下面的developer setting,选择Personal access tokens中的Tokens (classic),然后generate new token(classic),选择你要赋予的权限(如果不清楚可以全选,但是实际上只要把仓库部署的Github Page的权限给她就可以,并设置失效时间,可以设置永远有效,不过需要考虑安全问题),然后将personal access token复制下来(你只能看着一次,之后不会再出现了!!!)。这一段便是需要填在repo中APIkey的内容。
修改Deploy配置
进入博客项目目录,找到_config.yml
文件,这是Hexo的配置文件,需要修改其中的一些设置,以适应GitHub Pages:
①在deploy字段下,设置type为git,表示使用Git进行部署。
②设置repo为您的GitHub仓库地址,格式为https://[email protected]/your user name/your repository name
。请根据要求替换!!!
其中APIkey为访问你的Github库必不可少的一部分,在your user name和your repository name分别填上你的Github账户名称和仓库名称。然后将branch设置为master。
deploy: type: git repo: https://[email protected]/your user name/your repository name branch: master
是在本地创建密钥
创建 SSH 密匙
ssh-keygen -t rsa -C "你的 GitHub 邮箱"
什么都不用管,一路回车就行。然后我们进入C:\Users\ 用户名 \.ssh
目录(勾选显示 “隐藏的项目”)。如果你是MacOS,则在你的系统盘的根目录中。当然,也需要显示隐藏的项目。然后,用记事本**打开 id_rsa.pub
**复制里面的内容。MacOS可以直接cat。
在GitHub中添加SSH密钥
这个时候我们回到GitHub,进入Settings:
选择左边栏的 SSH and GPG keys,点击 New SSH key:
Title随便取,然后把id_rsa.pub里面的内容到复制到Key中,点击Add SSH key即可。保存完毕以后,我们可以在本地验证一下连接:ssh -T [email protected]
然后修改_config.yml
文件,模板参考如下:
deploy: type: git repo: [email protected]:name/name.github.io.git branch: master
其实就是通过SSH进行连接,SSH连接地址可以 直接在仓库<>Code
里面看到
Deploy至Github Pages
我们需要先安装hexo-deployer-git:npm install hexo-deployer-git --save
然后在本地(进入blog根目录)运行:
hexo clhexo ghexo d
其中,第一个是清楚之前生成的public文件夹,第二个是生成public文件夹,第三是根据_config.yml
文件中的deploy选项进行部署。
部署完成后可以通过你的用户名.github.io
来访问博客了(如果你没有域名的话),如果你有域名,下面介绍如何将域名和你的Github Page绑定。
域名和你的Github Page绑定
首先来到Cloudflare,为你的域名添加一个CNAME
标记,指向你的用户名.github.io
。开不开CDN都无所谓。不过还是打开(如果你没有反代鸡的话),至少还能勉强访问。
同时,你需要在hexo目录下的source文件夹生成CNAME文件,里面写上你的域名
然后进入你的仓库的settings,在Build and deployment部分设置好你的Branch,然后再Custom domain部分填入上面解析好的域名,经过检测后便可以点击Save保存。完成后,就可以用你的域名进行访问了!!!
下一篇会介绍怎么将静态文件部署到自己的VPS上。
另外,由于时间仓促,如果有不正确之处还请大佬们指出(^人^)