Hexo瞎折腾系列(6) - 将博客同时部署到Github和Coding
前言
由于本人只是将Hexo博客同时部署到 Github 和 Coding.net ,所以这里只介绍怎么同时部署到这两个网站的pages。
之所以选择这两个网站,是因为国外用户可以访问 Github,而国内用户可以访问 Coding.net。另外,Coding.net可以拥有自己的私人仓库。
修改站点配置文件
在站点根目录下找到 _config.yml
文件,将里边的deploy节点修改成下边的形式:
# 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仓库地址,即:
git@{domain}:{username}/{repository}.git
还有一种是HTTPS协议的Git仓库地址,即:
https://{domain}/{username}/{repository}.git
一般推荐使用SSH协议的地址,因为可以免去每次push都要输入账号密码的繁琐,而且也够安全。
在 Github 和 Coding.net 上各自创建一个仓库
如果我们只是将项目部署到某一个代码托管站点而已,那么该项目仓库的名字可以随便起;但是现在我们需要将项目同时部署到 Github 和 Coding.net 上,那就不能随意命名了。
我们需要采用特定的命名方式,才能正确将Hexo博客同时部署到这两个站点上;否则很可能会导致只有博客的主页能访问到,而其他的路径全部失效。
仓库的命名
对于 Coding.net,你可以选择建立一个私人仓库来部署自己的Hexo博客,不过和 Github 不同的地方在于:
Github 的仓库名要命名为:
{username}.github.io
而 Coding.net 的仓库名要命名为:
{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节点也就只能配置一个而牺牲另一个了;但是如果你有自己的域名,就可以解决这个问题了:直接在这里配置自己的域名就行了。
配置 SSH key
创建RSA密钥对
使用 Git Bash 生成RSA密钥对:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
看到提示就按一次回车,在连续三次回车后,就表示创建成功了。
接着将 ~/.ssh 目录下将里边的 id_rsa.pub 文件里的内容复制到剪切板。
Github 配置 SSH key
登陆 Github 的账号:
- 进入 Settings 页面
- 选择 SSH and GPG keys
- 点击 New SSH key
- 填写 Title(用来给公钥起一个名字,以便和其他的公钥区分开来)
- 然后在 Key 里将我们刚刚复制的公钥复制进去
- 最后点击 Add SSH key,这时候 GitHub 会要你输入账号密码进行确认。
Coding.net 配置 SSH key
Coding.net 和 Github 有些不一样,Coding.net存在账户公钥和部署公钥;
- 账户公钥配置后拥有账户下所有项目的读写权限
- 部署公钥配置后默认拥有该项目的只读权限,如果需要获取推送权限,需要勾选部署公钥设置里的『授予推送权限』
登陆 Coding.net 的账号:
- 进入个人设置
- 选择 SSH 公钥
- 选择新增公钥
- 填写公钥名称和内容
- 添加后输入输入账号密码进行确认
验证 SSH 连接
使用 Git Bash 输入:
ssh -T git@github.com
第一次连接时会问你是否继续连接,输入 yes 即可;接下来验证 Coding.net 的ssh连接:
ssh -T git@git.coding.net
同样输入 yes 即可。
如果按照前边说的来配置,这里的 SSH 验证应该都是没问题的。
接下来只要撰写博文,然后使用命令进行部署就行了:
hexo clean
hexo g -d
Hexo瞎折腾系列(6) - 将博客同时部署到Github和Coding的更多相关文章
- 将 Hexo 个人博客同时部署到 GitHub 和 Coding 上
一.将个人博客托管到 GitHub 上 关于如何快速搭建自己的个人博客,如何完善自己的个人博客,什么是 GitHub ,如何将自己的博客代码托管到 GitHub 上面等等问题,我之前写过三篇文章已经做 ...
- Hexo瞎折腾系列(9) - 网页标题崩溃特效
前言 本系列的所有修改均基于本系列第一篇中的新增文件(譬如custom.js),请先自行阅读Hexo瞎折腾系列(1) - 准备工作与简单美化:并按照文章所说自行修改代码或文件. 为网页添加标题崩溃特效 ...
- 基于Hexo搭建博客并部署到Github Pages
基于Hexo搭建博客并部署到Github Pages 之前在简书上写东西,觉得自己还是太浮躁.本来打算用Flask自己写一个,以为是微框架就比较简单,naive.HTML.CSS.JS等都要学啊,我几 ...
- Termux搭建hexo博客并部署到GitHub
Termux搭建hexo博客并部署到GitHub 安装 termux-change-repo apt update apt install git && nodejs &&am ...
- 史上最详细“截图”搭建Hexo博客并部署到Github
http://jingyan.baidu.com/article/d8072ac47aca0fec95cefd2d.html 大家也搭建过博客,很多时候,按着教程来做就可以了,但是我当时为了搭建Hex ...
- Linux下使用 github+hexo 搭建个人博客02-hexo部署到Github Pages
之前的这篇文章<Linux下使用 github+hexo 搭建个人博客01-hexo搭建>,相信大家都知道怎么搭建 hexo ,怎么切换主题,并且完成了一篇博文的创建,以及 MarkDow ...
- Note | 用Hugo搭建博客并部署到GitHub Pages
目录 1. 本地搭建 1.1 安装Hugo 1.2 创建站点 1.3 新建页面和文章 1.4 使用主题 1.5 修改配置文件 1.6 预览 2. 部署 之前担心过现有博客平台(如博客园,CSDN)突然 ...
- Hexo瞎折腾系列(7) - Coding Pages申请SSL/TLS证书错误
问题 今天我的个人站点SSL/TLS证书到期,我的证书是由Coding Pages提供的,每次申请成功后有效期是三个月,证书到期后可以继续免费申请.但是当我登陆进入Coding Pages服务的后台并 ...
- hexo干货系列:(四)将hexo博客同时托管到github和coding
前言 之前我们把hexo托管在github,但是毕竟github是国外的,访问速度上还是有点慢,所以想也部署一套在国内的托管平台,之前查资料听说gitcafe,但是听说gitcafe已经被coding ...
随机推荐
- 这样看ACM是不是更好?
如果搞ACM只是为了拿奖,为了保研,这样太功利,整个过程都会变得没意思.我说过我同时看中过程和结果. 其实ACM解题也不是那么没意思,每次AC都有一种非常棒的成就感,每个题目就像是一个解谜游戏,完成了 ...
- iOS提交应用至App Store流程及真机调试 一,证书、配置文件
前言:你要有苹果开发人员账号,我用的是个人账号.其次xcode为xcode 7,因为xcode 7须要 os x 系统 10.11 或更高的版本号, 所以os x 系统也须要 10.11 或更高的版本 ...
- Java中常见的注解
Java中常见的注解 1.JDK自带的注解@Override @Deprecated @Suppvisewarnings 常见第三方注解 Spring:@Autowired @Service ...
- Deep Learning for Robotics 资源汇总
1 前言 在最新Nature的Machine Intelligence 中Lecun.Hinton和Bengio三位大牛的Review文章Deep Learning中.最后谈The Future Of ...
- RecyclerView(替代ListView)使用方法介绍
在build.gradle文件加入以下代码 compile 'com.android.support:cardview-v7:21.0.3' compile 'com.android.support: ...
- DCOS之Mesos-DNS介绍
DCOS的Mesos-DNS它主要提供域名解析服务,Mesos-DNS 在DCOS框架中支持服务发现,同意应用程序和服务通过域名系统(DNS)来相互定位.DCOS中的 Mesos-DNS充当的角色和在 ...
- activemq的安装使用
近期有项目中用到消息队列,JMS规范中实现最好的开源框架就是activemq.所以选择它(当然这是我老大决定的,像我这样的刚入职场的小菜鸟考虑问题还不太全面)作为消息队列数据传输.公司有有成型的消息队 ...
- DOM操作二
1.创建节点 createElement(): 创建新的Element节点 var s = document.createElement('script'); createTextNode(): ...
- 【POJ3740】Easy Finding DLX(Dancing Links)精确覆盖问题
题意:多组数据,每组数据给你几行数,要求选出当中几行.使得每一列都有且仅有一个1.询问是可不可行,或者说能不能找出来. 题解:1.暴搜.2.DLX(Dancing links). 本文写的是DLX. ...
- js appendChild 自带remove和append两个功能
一提到appendChild ,我们就知道是在父节点上增加子节点. 经常使用到它就是动态增加一个元素,将其加入到指定的父节点下. 其实appendChild除了这个功能之外,他还有一个功能:如果子节点 ...