天天看點

加速通路基于 Github Pages 和 Hexo 的部落格1. 探索 Hexo + NexT 的部落格打開速度比較慢的原因2. 修改部落格所依賴的字型資源3. 部落格托管平台比較4. 将部落格部署到七牛雲存儲時遇到的坑5. 參考連結

本文探讨如何加速通路基于 Github Pages 和 Hexo 的部落格。大家搭建部落格廣泛采用了 Hexo + NexT + Github Pages 的方式。衆所周知,這種類型的部落格未經優化,打開速度比較慢,本文探讨優化的方法,包括修改依賴的字型資源,更換部落格托管平台等方式,加速部落格的通路。

1. 探索 Hexo + NexT 的部落格打開速度比較慢的原因

由于我本人原本就比較重視部落格的打開速度,是以部落格中使用的資源均已進行了不同程度的優化。比如博文中的圖檔均外鍊于圖床「簡書、七牛等」,部落格的頭像和網站的圖示均優化了分辨率和畫質,關閉了所有 NexT 自帶的動畫效果等。

經過上述優化後,打開我的部落格,通過 Chrome 的開發者工具可以看到,通路部落格所請求的資源大多均可在 1 秒内獲得相應,但是其中仍然有三個資源請求失敗:

加速通路基于 Github Pages 和 Hexo 的部落格1. 探索 Hexo + NexT 的部落格打開速度比較慢的原因2. 修改部落格所依賴的字型資源3. 部落格托管平台比較4. 将部落格部署到七牛雲存儲時遇到的坑5. 參考連結

通過查詢這些 HTTP 請求,可以發現,請求失敗的原因是無法從 Google 的伺服器中擷取到 Lato 字型相關的資源「翻牆後可正常擷取這些資源檔案」:

加速通路基于 Github Pages 和 Hexo 的部落格1. 探索 Hexo + NexT 的部落格打開速度比較慢的原因2. 修改部落格所依賴的字型資源3. 部落格托管平台比較4. 将部落格部署到七牛雲存儲時遇到的坑5. 參考連結

2. 修改部落格所依賴的字型資源

打開 NexT 的主題配置檔案「_config.yml」,找到如下圖所示的字型設定區域,删除全局字型族「Lato」。

加速通路基于 Github Pages 和 Hexo 的部落格1. 探索 Hexo + NexT 的部落格打開速度比較慢的原因2. 修改部落格所依賴的字型資源3. 部落格托管平台比較4. 将部落格部署到七牛雲存儲時遇到的坑5. 參考連結

之後再次通路部落格,速度會大大加快。當然也可以設定網頁所使用的字型族,具體設定方式參見文末的參考連結。

3. 部落格托管平台比較

由于部落格部署在 Github Pages, 是以在國内通路速度顯然會比較慢。可選方案為國内的代碼托管平台「碼雲」,碼雲提供了 Coding Pages 服務,使用起來比 Github Pages 更加友善。但是同樣的 Hexo + NexT 部落格部署到碼雲,打開時會出現部分 Js 資源無法找到的錯誤,如下圖所示:

加速通路基于 Github Pages 和 Hexo 的部落格1. 探索 Hexo + NexT 的部落格打開速度比較慢的原因2. 修改部落格所依賴的字型資源3. 部落格托管平台比較4. 将部落格部署到七牛雲存儲時遇到的坑5. 參考連結

以上錯誤的原因我未過多探究,由于該平台有此錯誤,故我采用的方案是:将部落格部署在「七牛雲存儲」中,這樣做可顯著提高部落格的通路速度。

使用站長之家的「網站測速工具」對分别部署在「七牛」和「Github Pages」的我的兩個部落格進行測速,結果如下所示,速度高下立判。

加速通路基于 Github Pages 和 Hexo 的部落格1. 探索 Hexo + NexT 的部落格打開速度比較慢的原因2. 修改部落格所依賴的字型資源3. 部落格托管平台比較4. 将部落格部署到七牛雲存儲時遇到的坑5. 參考連結
加速通路基于 Github Pages 和 Hexo 的部落格1. 探索 Hexo + NexT 的部落格打開速度比較慢的原因2. 修改部落格所依賴的字型資源3. 部落格托管平台比較4. 将部落格部署到七牛雲存儲時遇到的坑5. 參考連結

4. 将部落格部署到七牛雲存儲時遇到的坑

參考文末連結中的方法即可順利将部落格部署在七牛中,并可使用七牛提供的臨時域名通路部落格,不過我仍遇到一些坑,造成了一些困擾。

遇到的問題一:雖然部落格部署成功,但是通過我自己的域名通路直接報 404 錯誤。後來發現的原因是 DNS 有問題,更換 DNS 後即可正常通路「如使用 阿裡 DNS」。我這裡的網絡一向對七牛支援不好,不知是什麼原因。

遇到的問題二:七牛預設采用「融合 CDN」技術手段,加速網站的通路,該方案會顯著影響動态檔案的請求效果,如更新某篇文章後,預設情況下過了 30 天才能在網頁上看到更新。官方提供了方案用來及時重新整理緩存:

重新整理緩存和生效時間

CDN 緩存規則設定

是以七牛提供的加速功能最好隻針對靜态檔案,但對于我們的靜态部落格來說,更新部落格後手動重新整理一下緩存其實并不麻煩,并且七牛的緩存重新整理時間可以進行設定,利大于弊。

5. 參考連結

  1. Next 主題中從伺服器加載 Google 字型
  2. Google 字庫導緻 Hexo NexT 首頁加載變慢
  3. Web 中文字型應用指南
  4. 跨平台字型效果淺析
  5. 淺析中英文基本字形的演變和發展
  6. 新手入門:選擇字型的五個原則
  7. Hexo 部落格系列:部署到七牛
  8. 多平台同步上傳用戶端「七牛」

繼續閱讀