什么是部署?

通过上一篇文章起步,我们已经在本地生成了一个静态博客了,但是别人看不见呀。

于是就有了部署:通过一定的手段将整个博客部署到某个服务器上,让大家,不,是让全世界都能看到!

服务器选择

为什么不选云服务器?

一提到服务器,一些耳熟能详的名字总会浮现在脑海,但对于像我这样的穷B而言,非要在类似阿里云百度云之流贵的一批的服务器里选择一个的话。。。对不起,我选择死亡。

其实主要是目前我们所用的方式搭建出来的是一个静态博客,用不到云服务器所配备的那些高端功能,我们刚需只有一个:show it!

选择一个靠谱的免费服务器

目前我所知道的符合我们刚需的免费服务器有三个:github, gitee, coding。看到这里你也许会恍然大悟,原来在最开始要求安装的git工具是在这里用的。没错,上面这三个家伙其实就是比较著名的git仓库而已,所以git工具就是我们和它们的交流工具。而他们都有个共同点:具备pages功能,也就是我们要的展示功能了。所以我姑且将之称为服务器。

下面来比对一下三个服务器的优缺点:

  • github: 名气最大,开源项目数最多。但服务器在国外,部署速度和响应速度不稳定
  • gitee: 又名码云,很多企业都在用它。但是部署速度一样很感人,而且对于hexo博客而言,经常会粗现一些不可描述的错误
  • coding: 名气不如前两个,但是服务器在国内,部署和响应速度非常快。也不知道算不算缺点的只有一个:每次打开你的博客都会出现一个3秒的公益广告页面,之后会跳转到你的博客。

从上面三条的篇幅来看,我要安利哪个已经显而易见了。对我本人而言,coding的这个确实算一个缺点,因为我无法容忍我自己的页面有入侵,有我控制不了的东西。然而,哼哼,我也已经解决了啦啦啦(本人自制的主题中专门写了一个接口,只需要把false改成true。只要你敢用我的主题,我就敢让你这么轻松的摆脱烦恼~),解决方法后面详细讲。

这并不是给coding.net打广告,只是我就不信你看到我这极速的博客不心动?

部署流程

考虑到以后可能使用多台机器来写文章(比如在家和在办公室),经过本人多方考察于实践,已将最佳方式写入了本部署流程中。所以导致本流程可能于其他教程不同。
如果你可以保证永远不挪窝,永远在一台机器上写文章。请跳过以下流程,自行百度。

创建新仓库

二话不说,先打开coding.net,右上角注册一个账号,注册过程略。

做如下操作:

添加一个新项目

添加一个新项目

仓库基本配置

仓库基本配置

进入分支管理页面

进入分支管理页面

新建分支

新建分支

新分支配置

新分支配置

修改默认分支

修改默认分支

选择刚创建的那个src分支,然后更新

选择刚创建的那个src分支,然后更新

启动pages服务,也就是展示功能

启动pages服务,也就是展示功能

以上就已经完成了仓库的基本配置,以后基本就不用在配置什么了。

通过git完成部署

在终端(命令行 / bash)中,进入到本地的blog目录下,执行下面的命令安装一个hexo的部署工具。

1
npm install hexo-deployer-git --save

安装完成之后,配置部署路径。打开站点配置文件blog/_config.yml,修改deploy的配置。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 原代码
deploy:
type:
# 修改为
deploy:
- type: git
repo: https://git.coding.net/codefine/codefine.coding.me.git # 后面为:你的账号/刚才创建的仓库名.git
branch: master
- type: git
repo: https://git.coding.net/codefine/codefine.coding.me.git # 后面为:你的账号/刚才创建的仓库名.git
branch: src
extend_dirs: /
ignore_hidden: false
ignore_pattern:
public: .

保存文件。还是在blog/目录下,用hexo命令完成最终部署:

1
2
3
4
hexo clean
hexo generate
hexo deploy
# 2 3可以简写为 hexo g -d

打开浏览器,输入url仓库名.coding.me,恭喜,可以看到自己略显牛逼哄哄的在线博客了。

多台机器写博客

思路及原理

本机当前状况

  • 博客所有文件以及配置都在本机上
  • 已经把本机上的所有文件以及配置都部署到了在线仓库

其他机器状况

  • 没有任何博客的文件以及配置

通过对比,我们可以看出,多台机器写博客的本质就是:

  • 下载在线仓库中的所有文件以及配置
  • 修改或者添加文章,或者修改配置(包括后面要讲到的主题修改)
  • 部署。也就是更新在线仓库,便于下次换机器时能得到最新的文件及配置

实践

本着严谨的原则,我们可以在本机上模拟这个过程。那么,我们来无情的删除刚才辛辛苦苦的创建并修改的本机所有博客文件,也就是删除blog整个目录,这样你满意了吧?

首先用终端进入到一个合适的目录,用于存放咱们的博客文件。然后我们找到仓库的地址,启用复制粘贴大法。

复制仓库地址

复制仓库地址

1
2
3
4
5
6
7
# 下面的仓库名和目录名都替换成自己的
git clone https://git.coding.net/codefine/codefine.coding.me.git # 下载刚才复制的仓库地址(可能会让你输入coding.net的用户名和密码)
cd codefine.coding.me # 进入博客目录
npm install # 安装依赖
hexo clean # 清除缓存文件(非必须)
hexo g # hexo generate的简写,生成静态文件
hexo s # hexo server的简写,启动本机服务,预览博客

ok,我们之前的博客又回来,请开始你的表演!

特别注意:
下载仓库文件和直接在本地从零开始创建博客有所不同。
下载的文件中会默认携带一个 .git 的隐藏目录,如果直接部署,则会报错
所以我们要在博客目录中用 rm -rf .git 命令来删除这个文件(或者你要是有本事能在资源管理器中找到手动删除也可以)。
删除之后就可以顺利部署了。
下次换机器之后又能开心的下载最新的文件来写博客了。

最后的最后,别写了一大堆文章,忘记部署了,那下次换机器以后就悲剧了。

1
hexo g -d # hexo generate & hexo deploy的简写