Hexo折腾大赏

本文最后更新于:a day ago

Hexo 折腾大赏

本人有服务器若干,Github账户一个,CloudFlare账户一个。选择折腾Hexo纯粹是闲的

博客网站有动态和静态两大类,其中各有各的特点和问题。
在我看来,静态博客最大的问题就是没有后台。网站管理难度直线上升。当然静态博客也有好处,生成的是HTML文件,页面加载速度快,对服务器要求较低。或者可以干脆选择Pages托管,无论是CloudFlare还是Github都有免费的Pages托管服务。

先来说结论:技术小白强烈不推荐Hexo等部署难度较大的静态博客,无论是WordPress还是Typecho,在部署难度上来说都比静态博客要低不少。

部署Hexo

Hexo.io上提供了部署教程。但是…… 我还是再水点字数好了。

Windos平台上Hexo的运行仰赖于两个东西——Node.JSGit

两者在安装的时候都是按着默认配置来就可以了。除了Git里面有一个东西要改动

1
2
Use MinTTY
Use Windows's default conlse window

这里要手动改成Use Windows's default conlse window

全部安装完成以后,找一个合适的地方新建一个空的文件夹。
打开文件夹,右键找到Git Bash Here。这里会弹出一个命令行窗口。

请各位电脑苦手注意,Hexo的很多事情都仰仗于这一个小小的命令行窗口来完成。没有能力或者信心的,请自觉转去动态博客。

在窗口中输入如下命令

1
npm install -g hexo-cli

等待安装完毕。安装完毕后可以用Hexo -v来核验是否安装完成。
下一步,初始化网站。

1
hexo init

接下来输入Hexo g(渲染页面)和Hexo s(启动服务器)。

到这里,如果可以在浏览器中输入localhost:4000访问的话,那就代表Hexo在本地搭建完成了。

发布你的网站

网站做出来就是要让人看的。这里我提供CloudFlare的Pages托管部署指导。

什么?部署到服务器?等我研究完了再说吧

CloudFlare的网页托管服务需要依靠Github的仓库来完成。别问我为啥不用Githubpages,因为那玩意访问速度感人。

首先登录Github,然后新建一个Repositories。默认选项即可。

接下来的操作略微有一点麻烦。所以我还是先解释一下这套系统的逻辑比较好。

CloudFlare Pages是一个静态网页托管服务,静态网页的资源读取自绑定的Github仓库。那么我们只需要将网站同步到Github仓库,CloudFlare Pages就可以自动读取并且发布。

下面要做的事情是把建立一个“通道”,让我们可以把在本地渲染好的网页同步到Github的仓库。

还是在那个命令行窗口里面,依次执行如下的命令。

1
git config --global user.name "在这里输入用户名,引号不能少"
1
git config --global user.email "在这里输入你注册Github的邮箱"

生成SSH密钥↓

1
ssh-keygen -t rsa -C "和上一步一样的邮箱"

生成SSH密钥的时候会跳出来几个选项,全部回车默认即可。

进入Github的设置页面,找到SSH and GPG keys这个选项卡。点击New SSH key这个选项。
Title这里不建议瞎起名字,起一个便于理解的,比如博客

下面的Key自然就是要填写密钥。在命令行窗口执行如下命令,查看之前生成的密钥。

1
cat ~/.ssh/id_rsa.pub

输入如下命令,如果出现yes/no的选项,输入yes。如果可以看到你的Github用户名即代表“通道”构建成功。

1
ssh -T [email protected]github.com

CloudFlare Pages 现在处于公测阶段(Public Beta),任何人都可以使用,只需要注册一个CloudFlare账户。
CloudFlareDashBoard
登录账户并且选择仓库
这里需要注意,如果Github仓库没有文件,就无法产生Branches。解决问题的方法也很简单,随便上传一个文件即可(添加一个README.md即可)。
后面的选择None即可,无需过多配置。

请注意,CloudFlare Pages对每个月的构建次数是有限制的,免费计划一个月有500次,而每次部署页面都会消耗构建次数,且免费版一次只能构建一个文件。

再次回到命令行窗口
依次输入渲染命令和推送命令

1
hexo g
1
hexo d

等待CloudFlare Pages 完成构建,在浏览器输入分配给你的域名,就可以在互联网上看到你的博客了。

动机

我很想说说这次折腾的动机。虽然没花一分钱,但是还是花费了我大半天的时间来调试和写下这篇文章。

之前翻到过sukk大佬的博客。里面有一篇讲的是如何将网站直接部署到CF上面,由此可以节省CDN的回源时间。当时就觉得这个想法太酷了。但是自己是个技术小白,除了能折腾之外没啥特长。所以看着满篇的代码就放弃了。直到后来CloudFlare推出了自家的Pages业务,才算是有了机会实地体验一下。

参考文章


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!