本篇重點
- hexo deploy 檔名大小寫不同,導致網頁404
- git 忽略檔名大小寫的原因
- 解決 hexo deploy github 檔名大小寫問題
hexo deploy github page 檔名大小寫不同,導致網頁404
有一次無意間發現網站中的某幾個頁面會404 error,但是在本地 hexo s
測試卻是正常的,重新 deploy 還是沒有修正這個問題,仔細比對檔案和網址後發現 github 上的檔名和網址路徑不同
造成錯誤的原因是剛開始設計的 tag 名稱是大寫,但後來修改為小寫命名,deploy 到 github 並沒有更新為小寫,導致 github page 404 錯誤,也就是說 git 並未追蹤檔名的大小寫。
git 忽略檔名大小寫的原因
git 預設是忽略追蹤檔名大小寫,所以檔名做大小寫變更時並不會記錄。原因是許多作業系統(例如 Windows 和 macOS)的檔案系統,檔名大小寫是不敏感的。
例如:建立 test 資料夾後,再建立 TEST 資料夾,系統會詢問是否要取代檔案,認為兩個檔案名稱是相同的
解決 hexo deploy github 檔名大小寫問題
修改檔名的當下,git 設定是忽略檔名大小寫的,因此之後的更新沒辦法改變 github 上的檔名,解決這個問題必須清空 github 上的檔案並且重新上傳。
1. 設定 git 追蹤檔名大小寫
執行 hexo d
的時候,會從 .deploy_git
資料夾將檔案更新至設定好的 github,所以需要修改 .deploy_git
的 git 設定,讓 git 追蹤檔名的大小寫,以便之後修改檔名能正確更新。
1 | // 進入 .deploy_git 資料夾 |
2. 清空 github 上的檔案
1 | // 移除當前目錄及其子目錄中的所有文件和文件夾,新增至暫存區 |
3. hexo 重新生成檔案並佈署
1 | // 回到 hexo 資料夾 |
結論
無意間發現的錯誤讓我更了解 git ,原來 git 預設是忽略追蹤檔名大小寫的。檔名修正更新後 php 標籤頁就恢復正常啦😁~
快回想看看你的 github page 有沒有曾經更改過檔名大小,如果有,可能也會遇到 404 的問題,趕快清空 github 上的檔案重新佈署吧!