Hexo瞎折騰系列(6) - 將博客同時部署到Github和Coding

前言

因爲本人只是將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 上各自建立一個倉庫

若是咱們只是將項目部署到某一個代碼託管站點而已,那麼該項目倉庫的名字能夠隨便起;可是如今咱們須要將項目同時部署到 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節點也就只能配置一個而犧牲另外一個了;可是若是你有本身的域名,就能夠解決這個問題了:直接在這裏配置本身的域名就好了。

配置 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
相關文章
相關標籤/搜索