因为本人只是将Hexo博客同时部署到 Github 和 Coding.net ,因此这里只介绍怎么同时部署到这两个网站的pages。
之因此选择这两个网站,是由于国外用户能够访问 Github,而国内用户能够访问 Coding.net。另外,Coding.net能够拥有本身的私人仓库。html
在站点根目录下找到 _config.yml
文件,将里边的deploy节点修改为下边的形式:
git
# Deployment ## Docs: https://hexo.io/docs/deployment.html deploy: type: git repo: github: git@github.com:{username}/{repository}.git,master coding: git@git.coding.net:{username}/{repository}.git,master
将上边的仓库url的{username}/{repository}改为本身的项目地址,这里使用的是SSH协议的Git仓库地址,即:github
git@{domain}:{username}/{repository}.git
还有一种是HTTPS协议的Git仓库地址,即:安全
https://{domain}/{username}/{repository}.git
通常推荐使用SSH协议的地址,由于能够免去每次push都要输入帐号密码的繁琐,并且也够安全。bash
若是咱们只是将项目部署到某一个代码托管站点而已,那么该项目仓库的名字能够随便起;可是如今咱们须要将项目同时部署到 Github 和 Coding.net 上,那就不能随意命名了。hexo
咱们须要采用特定的命名方式,才能正确将Hexo博客同时部署到这两个站点上;不然极可能会致使只有博客的主页能访问到,而其余的路径所有失效。dom
对于 Coding.net,你能够选择创建一个私人仓库来部署本身的Hexo博客,不过和 Github 不一样的地方在于:ssh
Github 的仓库名要命名为:网站
{username}.github.io
而 Coding.net 的仓库名要命名为:url
{username}
这里的 username 指的是你在这两个网站上的用户名,只有以这种命名形式的仓库,才可以不经过子域名的形式来访问咱们的博客。
好比说,个人 Github 和Coding.net 的帐号都是lewky,那么在部署博客成功后,我就能够经过下边的url来访问个人Hexo博客:
https://lewky.github.io/ https://lewky.coding.me/
若是将仓库名命名为其余的形式,好比:hexo-blog,那么要访问该博客,就须要输入下边的url:
https://lewky.github.io/hexo-blog https://lewky.coding.me/hexo-blog
这里的仓库名hexo-blog就变成了子域名,因而问题就来了,对于存在子域名的Hexo博客,须要在站点配置文件里配置url节点:
# URL ## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/' url: http://yoursite.com root: / permalink: :year/:month/:day/:title/ permalink_defaults:
若是不配置这里的url节点,会致使除了首页之外的全部页面都请求404;可是咱们因为是同时部署在两个网站上,其父域名是不同的,那么这里的url节点也就只能配置一个而牺牲另外一个了;可是若是你有本身的域名,就能够解决这个问题了:直接在这里配置本身的域名就好了。
使用 Git Bash 生成RSA密钥对:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
看到提示就按一次回车,在连续三次回车后,就表示建立成功了。
接着将 ~/.ssh 目录下将里边的 id_rsa.pub 文件里的内容复制到剪切板。
登录 Github 的帐号:
Coding.net 和 Github 有些不同,Coding.net存在帐户公钥和部署公钥;
登录 Coding.net 的帐号:
使用 Git Bash 输入:
ssh -T git@github.com
第一次链接时会问你是否继续链接,输入 yes 便可;接下来验证 Coding.net 的ssh链接:
ssh -T git@git.coding.net
一样输入 yes 便可。
若是按照前边说的来配置,这里的 SSH 验证应该都是没问题的。
接下来只要撰写博文,而后使用命令进行部署就好了:
hexo clean hexo g -d