Hexo at MacOS架站心路歷程:Part III - Hexo部署架設 - Netlify + Github 篇

動機與目的
- 用了Github Pages部署方式後,發現會有些不方便的地方,比如更新文章時,需要在本地端先進行編譯建置(hexo generate),部署到public文件夾後,再手動上傳資料夾中內容至github更新網頁。
- 上網研究,發現Netlify這項好用工具,可以更快速方便的更新自己的網站,做到持續性部署(CD)
- 接下來,就讓我們開始吧!
使用Netlify+Github進行網站部署
Netlify 是一家遠端優先的雲端運算公司,提供一個開發平台,其中包括針對 Web 應用程式和動態網站的建置、部署和無伺服器後端服務。(Wiki)
- 操作原理
- 將Hexo 部落格相關資料,丟到Github建立一個repo
- 使用Netlify來建立無伺服器的後端部署服務,並連結至上述repo
- Netlify將會自動偵測Github repo的更新變動,自動進行部署
Step 1: 將Hexo Project上傳github進行遠端管理
- 在部落格的根目錄中,初始git服務,並將我的hexo網頁檔案push上github repo
Fold code blockBASH
Copy code
1 | $ git init |
Debug - git problem with ‘critical error: 身份驗證失敗’
請參考這篇:https://stackoverflow.com/questions/68775869/message-support-for-password-authentication-was-removed
- 2021-08-13以後,github不再支援直接輸入密碼的方式,來操作git;而是使用**PAT (Personal Access Token)**作為替代。
- 長話短說:請至github頁面申請一組PAT,使用PAT來取代密碼即可。
Step 2: 辦理與部署Netlify
- 登入官網後,可以直接使用github帳號做登陸
- 填寫完相關資訊,請選擇使用github連動您的hexo repo(剛剛上傳的那個)
- 點選剛剛連動的repo,再點選Edit build settings
- 修改如下圖所示(其實使用系統預設值即可)
- 修改後,即可按下部署「Deploy name to Netlify」並等待發出;成功的話,將會出現下面的資訊囉!
- 此時,就可以接著後續的設定,如:客製化網誌URL,或是內嵌入其他插件,這邊不做贅述。
- 如此一來,就完成網站的部署囉!
Debug經驗分享:Netlify 部署Hexo Github 初始化(initializing) 失敗
- 問題發現:
- 建制初期,進行Hexo部落格更新時,推到Github上,理論上Netlify會自動幫我編譯與部署,但當netlify在進行初始化(initializing)動作,會跳出Failed的警告字樣,如下圖:
- 分析觀察:
- 觀察第八與第九行,可以發現,問題是出在「.deploy_git」這個檔案。發現這個檔案應該是Netlify在部署時會自動產生出的文件,git submodule 無法追蹤或更新到這份模組,導致錯誤。
- 解決方法:
- 參考以下連結,先將「.deploy_git」這個檔案給刪掉
刪除指令:
Fold code blockBASH Copy code1
git rm --cache '.deploy_git' # system response: rm '.deploy_git'
下圖為檢查與刪除的過程圖:
- 並且,記得將部署檔案”.deploy_git”加入到”.gitignore”檔案裡面(若無此檔案,要自己創建),以免再次把”.deploy_git”更新上去。
- 可以使用指令
ls -la
看看有沒有這個檔案,若沒有,可以用指令touch .gitignore
來創造,再使用文字編輯器將檔案.gitignore
加上去即可
- 可以使用指令
- 編輯結束後,再將hexo的repo推上去github,讓netlify自動部署更新,就可以成功囉!
小結
- 將部署工具換成netlify之後,有種如釋負重的感覺,之前繁瑣的部署流程,可以直接推上github後就結束了,他將會幫我自動部署到網路上,輕鬆方便許多!
- 遇到Bug時,一時間也覺得不知所措,但真的仔細深入了解其原因後,才發現原來解法這麼單純,但這也是玩資訊工程時的醍醐味吧!
Hexo at MacOS架站心路歷程:Part III - Hexo部署架設 - Netlify + Github 篇
https://qjspace.dev/202403-hexo/hexo_build_part3-2/
Copy copyright info
Comments
Comment plugin failed to load