因爲本人只是將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