hexo同时部署到coding(gitcafe)和github

文章目录
  1. coding配置
    1. ssh对接
    2. 新建项目
  2. hexo配置
  3. 部署
    1. 使用Pages部署
    2. 使用演示

2017.07.10更新: 注:目前部署到coding需要在网页上表明coding.net 或者开通会员,否则在首次访问时候, coding.net强加推广页面

2016.03.07更新: 部署到coding时,如果使用pages的话,项目名称必须与coding的用户名一致,但是演示并没有这个要求。 而且目前为止:演示不能绑定自己的域名,而pages可以,所以说,为了以后方便,项目名称还是与用户名一致的好,不然部署pages会出现没有样式的bug.

之前已经把hexo部署到github,但是有时候挺慢的,于是就像跟大家一样搞到国内的gitcafe上,岂料,上到gitcafe官网才发现它已经被coding.net收购了,看下图,而且2016.5.31之后停止服务, 就直接去了coding上部署了。结果有一点问题,耽误了好长时间。。。记录一下吧。

coding配置

基本流程跟github一样,都是先申请帐号。这里需要说一下的是,申请coding的邮箱尽量与github使用同一个邮箱,这样配置ssh就省了事情,不用配置两个ssh了。

ssh对接

基本一样,如果之前生成过ssh的话,就可以直接使用,一般存放在~/.ssh/id_rsa.pub。如果没有的话,那就下面几步就可以了

1
$ ssh-keygen -t rsa -b 4096 -C "你的邮箱"

后面就直接默认,按回车就好。 然后就是:

1
$ ssh-add

然后在coding的个人页面,如下

注意这是在个人账户下添加了ssh,以后新建了项目,项目也有个ssh,但是那个是只读的,不要加到那里去。只需要在个人账户下,加入了即可。

加入了之后,执行验证:

1
ssh -T git@git.coding.net

提示如下即可:

1
Hello shomyliu You've connected to Coding.net by SSH successfully!

如果失败了,则检查一下是不是在coding那里对了,基本流程跟github一样。这一步ok了。

新建项目

这一步也很简单,直接新建一个项目就好了,这里需要注意就是:项目名尽量与用户名一样,这样可以省去好多麻烦.另外网上有人说得是最好是公有的,所以就搞了一个公有的。其余的都不用动,直接默认就行了。

hexo配置

新建好了coding的项目之后,修改一下站点的配置文件,_config.yml如下:

1
2
3
4
5
6
deploy:
type: git
repository:
github: git@github.com:ShomyLiu/ShomyLiu.github.io.git
coding: git@git.coding.net:shomyliu/shomyliu.git
branch: master

由于的都是master分支,所以两个写到一起了,如果不是同一个分支的话,可以如下的写法:

1
2
3
4
5
deploy:
type: git
repository:
github: git@github.com:ShomyLiu/ShomyLiu.github.io.git,分支名称
coding: git@git.coding.net:shomyliu/shomyliu.git,分支名称

其实就是在原来的基础再加一个就好了。只需要把repo的地址改成自己对应项目的就好。 还有一步,就是在博客的source/目录下需要创建一个空白文件,至于原因,是因为 coding.net需要这个文件来作为以静态文件部署的标志。就是说看到这个Staticfile就知道按照静态文件来发布。 ,

1
2
cd source/
touch Staticfile #名字必须是Staticfile

现在可以deploy了。

1
2
3
$ hexo clean
$ hexo g
$ hexo d

会看到有两个发布。发布完成之后,还需要托管coding.net上。

部署

然后下面开始部署:有两种方式

使用Pages部署

这种方式的话,可以绑定自己的域名。就跟Github Pages一样。项目名字必须与coding的用户名一致!!!只需要在如下: 因为前面配置的分支是master,因此开启之后,也需要是master。然后看起之后就可访问了,下面两个链接都可以访问

1
2
http://shomyliu.coding.me/shomyliu
http://shomyliu.coding.me/

使用演示

这种方式类似与使用coding.net的主机了。注意此方式不可以绑定自己的域名。 如图,打开自己的新建的项目,在代码区域,可以看到已经push上去了。现在打开演示一栏 直接 开始检测, 一般情况,如果按照上面的步骤来的话,尤其是创建了Staticfile这个空文件的话,这里是可以正常开启的。如果不行的话,就强制开始,然后在进去如下: 如果是正常开启的话, 系统会自动检测运行环境,这时候,就没有必要修改高级选项了,如果是强制开启的话,那就需要修改了,指定运行环境是html. 然后运行内存 可以改小一点,毕竟静态博客也就占用几M内存。 之后在一键部署,稍等一会(时间有长有短),部署成功如下显示: 这时候,访问你的网页就可以了,与github.io一模一样! 此时还有一步,就是为了可以每次更新都可以立刻部署到线上,这里就需要配置一下webhook,这里参考了这篇 首先在项目设置里面找到webhook:然后新建一个webhook,域名后面记得加上/_ 如图, tooken可以随意写。之后添加了之后,回到演示页面,找到环境变量:如下:添加即可webhook: 之后再终止掉演示,重新部署,再次开启虚拟机,就最终完成了.

可以看出第一种方式使用pages比较方便,建议使用。