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。如果没有的话,那就下面几步就可以了

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

后面就直接默认,按回车就好。
然后就是:
<!--more-->

$ ssh-add

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

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

加入了之后,执行验证:

ssh -T git@git.coding.net

提示如下即可:

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

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

新建项目

这一步也很简单,直接新建一个项目就好了,注意用户名尽量与项目名称保持一致。另外网上有人说得是最好是公有的,所以就搞了一个公有的。其余的都不用动,直接默认就行了。

hexo配置

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

deploy:
  type: git
  repository:
      github: git@github.com:ShomyLiu/ShomyLiu.github.io.git
      coding: git@git.coding.net:shomyliu/shomyliu.git
  branch: master

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

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

现在可以deploy了。

$ hexo clean
$ hexo g
$ hexo d

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

部署

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

使用Pages部署

这种方式的话,就跟Github Pages一样。只需要在如下:

因为前面配置的分支是master,因此开启之后,也需要是master。然后看起之后就可访问了,下面两个链接都可以访问

http://shomyliu.coding.me/shomyliu
http://shomyliu.coding.me/

使用演示

这种方式类似与使用coding.net的主机了。但是貌似每次部署更新不及时,可以尝试。
如图,打开自己的新建的项目,在代码区域,可以看到已经push上去了。现在打开演示一栏

直接 开始检测, 一般情况,如果按照上面的步骤来的话,尤其是创建了Staticfile这个空文件的话,这里是可以正常开启的。如果不行的话,就强制开始,然后在进去如下:

如果是正常开启的话, 系统会自动检测运行环境,这时候,就没有必要修改高级选项了,如果是强制开启的话,那就需要修改了,指定运行环境是html. 然后运行内存 可以改小一点,毕竟静态博客也就占用几M内存。
之后在一键部署,稍等一会(时间有长有短),部署成功如下显示:

这时候,访问你的网页就可以了,与github.io一模一样。
此时还有一步,就是为了可以每次更新都可以立刻部署到线上,这里就需要配置一下webhook,这里参考了这篇
首先在项目设置里面找到webhook:然后新建一个webhook,域名后面记得加上/_

如图, tooken可以随意写。之后添加了之后,回到演示页面,找到环境变量:如下:添加即可webhook:

之后再终止掉演示,重新部署,再次开启虚拟机,就最终完成了.

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

你可能感兴趣的文章

34 条评论
这块显卡有点冷 · 2016年03月07日

Coding也有pages服务

回复

shomy 作者 · 2016年03月07日

对呀,基本跟gitcafe一样,我后来也是使用pages部署,使用演示比较麻烦,还不能及时更新。

回复

这块显卡有点冷 · 2016年03月07日

不过他有个功能没有实现。再绑定域名之后不能通过这个域名来访问你别的项目的pages 这个在github gitcafe都可以的。不过,已经给coding提了这个问题,他们在之后会实现这个问题。

回复

shomy 作者 · 2016年03月07日

哦哦,这个倒还真没注意, 也是刚刚用了coding。 不过免费提供个虚拟主机还是不错的

回复

tengj · 2016年03月07日

哈哈我昨天也研究了发布到coding的,我也写了篇文章。跟你满像的。我是使用演示方式部署的,可以及时更行的,你只要配置了webHook就行。我刚才用pages的方式不行,晚上再研究下吧。演示的方式也有一个问题就是免费版不支持绑定自定义域名,要收费的才行。我的博客地址是:tengj.coding.io

回复

shomy 作者 · 2016年03月07日

哦哦,这样啊!原来是缺少webhook,试试。不过演示就是提供了一台免费的虚拟主机,而且配置繁琐一些,还有一次,演示无缘无故的终止了QAQ。 所以还是pages方便一些,你那pages不行,是不是没有新建一个Staticfile空文件,放到source里面

回复

tengj · 2016年03月07日

是的我没有建这个Staticfile文件,还没试过,还有部署分支我也是选择默认的coding-pages,但是我hexo配置文件里面写的是master

回复

shomy 作者 · 2016年03月07日

哦哦, 加上这个空文件,再改一下分支,应该就可以了,几乎咩有任何阻碍--特别快

回复

tengj · 2016年03月07日

蛋碎,http://tengj.coding.me/hexoblob还是不行。

回复

shomy 作者 · 2016年03月07日

这个是没部署成功吧?hexo d成功执行了吗?

回复

tengj · 2016年03月07日

hexo deploy -g

回复

shomy 作者 · 2016年03月07日

你这好奇怪---可以访问,只有css样式出不来。。。清空一下

hexo clean
hexo g
hexo d

回复

tengj · 2016年03月07日

刚也clean试过了,还是不行。好冏

回复

shomy 作者 · 2016年03月07日

QAQ...我用F12看了看,就是一些css和js not found, 你检查看看repo里面都有吗?还是咋回事?


http://tengj.coding.me/js/jquery-2.0.3.min.js Failed to load resource: the server responded with a status of 404 (Not Found)
http://tengj.coding.me/js/jquery.imagesloaded.min.js Failed to load resource: the server responded with a status of 404 (Not Found)
http://tengj.coding.me/css/style.css Failed to load resource: the server responded with a status of 404 (Not Found)
http://tengj.coding.me/img/dudu.gif Failed to load resource: the server responded with a status of 404 (Not Found)
http://tengj.coding.me/js/jquery.qrcode-0.12.0.min.js Failed to load resource: the server responded with a status of 404 (Not Found)
http://tengj.coding.me/js/gallery.js Failed to load resource: the server responded with a status of 404 (Not Found)
hexoblob:302 Uncaught ReferenceError: $ is not defined
http://tengj.coding.me/fancybox/jquery.fancybox.css Failed to load resource: the server responded with a status of 404 (Not Found)
http://tengj.coding.me/fancybox/jquery.fancybox.pack.js Failed to load resource: the server responded with a status of 404 (Not Found)
hexoblob:358 Uncaught ReferenceError: $ is not defined
http://tengj.coding.me/js/totop.js Failed to load resource: the server responded with a status of 404 (Not Found)
http://tengj.coding.me/img/scrollup.png Failed to load resource: the server responded with a status of 404 (Not Found)
http://tengj.coding.me/fancybox/jquery.fancybox.css Failed to load resource: the server responded with a status of 404 (Not Found)
http://tengj.coding.me/css/style.css Failed to load resource: the server responded with a status of 404 (Not Found)

回复

tengj · 2016年03月07日

估计是路径不对,pages发布多了一层项目名称。我演示的tengj.coding.io就可以,代码就一份

回复

shomy 作者 · 2016年03月07日

好奇怪。。。我这里问题不能复现啊

回复

shomy 作者 · 2016年03月07日

知道问题出在哪里了, repo名必须与coding的用户名一样,这果然是个坑,演示不要求一致,但是pages必须一致!

回复

tengj · 2016年03月07日

repo名是啥,项目名称要跟用户名一样吗

回复

shomy 作者 · 2016年03月07日

对的,就是coding的项目名称 必须与coding的用户名一致。我修改一下文章,强调一下。

回复

tengj · 2016年03月07日

哈哈哈,谢谢了,我感觉演示跟page没啥区别,选其中一个就行了。page域名还多了几个字母。

回复

载入中...
shomy shomy

1.6k 声望

发布于专栏

shomy

记录学习

4 人关注