關於本 Hexo Blog 部署過程中遇到的一些問題及解決辦法

前言

很多年前基於 WordPress 部署過一個個人 Blog,但是後面由於以前確實沒有什麽東西好寫,後面就停止續費伺服器關閉了。以前完全就是跟風當時寫 Blog 的熱潮,至於爲什麽沒使用一些公共的 Blog 平臺(比如新浪博客、網易博客),其實理由也很簡單,畢竟公共的 Blog 平臺很多客制化功能都無法使用,所以還是折騰了 Wordpress。

這幾年由於興趣以及工作使然,重新發現一些 Blog 依然是個非常讚的共享技術和知識的地方,於是又重新燃起了寫 Blog 的想法。一開始還是想説繼續基於 WordPress 搭 Blog,後面好像是在 Twitter 上發現一個大佬的個人資料頁的個人網站鏈接裏是他的 Blog,不過不是基於 Hexo,而是基於 Jekyll 部署,我 Google 了一下,才發現原來現在很多人基於這種方式部署 Blog,而且這種方式可以直接存放在 GitHub 上面作爲一個倉庫,這樣就免去了需要花錢租用伺服器的問題,而且説實話,我並不是個程序員,也暫時不瞭解數據庫相關知識,所以這種方式對我來説,簡直不能更友好了。至於後面爲什麽我沒基於 Jekyll 而是基於 Hexo,這個我也記不得了。


部署過程

在我正式準備基於 Hexo 部署 Blog 的時候,我先把一些相關的資料都先搜尋了一遍,包括主題安裝還有包括一些 Git 的操作等等,因爲不是程序員,所以對這些在程序員看來習以爲常的操作還是很陌生,詳細閲讀這些資料也是爲了確保自己不會虎頭蛇尾。

之前在網路上搜尋,很多人部署 Hexo Blog 都是使用 NexT 的主題,不過這個主題不是我的菜,後面詳細搜了下,確定了準備使用 Molunerfinn 製作的主題 Melody,作者 Molunerfinn 寫了詳細的部署文檔,而且由於該主題支持 Hexo 3 新增的資料檔案(也就是數據檔案)功能,以後方便主題 平滑升級。但是我在部署過程中還是遇到了些許問題,包括主題之外的部分,所以乾脆寫一篇博文來講講我部署 Blog 過程中的問題和解決辦法。

社交圖標顯示問題

問題描述

這個問題我不知道是由於什麽原因導致的,一開始我沒有直接拷貝 Molunerfinn 的代碼塊到 melody.yml,而是自己手敲,代碼如下:

social:
github fa: https://github.com/Molunerfinn
weibo fa: http://weibo.com/mybluedreams
rss fa: https://Molunerfinn/atom.xml
...

結果我在本地測試的時候,發現社交圖標一直顯示不出來。

解決辦法

後面按照 Molunerfinn 的代碼實例修改了之後就正常了,代碼實例如下:

social:
github fa: https://github.com/Molunerfinn
weibo fa: http://weibo.com/mybluedreams
rss fa: https://Molunerfinn/atom.xml
...

但是我還是咨詢了一個寫 PHP 的朋友,他跟我説代碼縮進是方便閲讀,以及代碼塊的收縮和展開,跟功能應該沒有問題。所以我暫時也不知道具體原因是怎麽樣,但是問題是解決了。

文章版權顯示問題

問題描述

文章版權的 Link 并未顯示成自己的 Blog 鏈接,而是 yoursite.com。我仔細搜尋了 Molunerfinn 的部署文檔,并沒有涉及這部分如何修改的内容,後面在 Melody 的 Issues 板塊搜尋文章版權的時候,發現了這個問題 文章末尾版权,雖然這個問題并不是咨詢關於這個鏈接的問題,是關於文章作者 Email 的問題,但是也讓我找到 Link 的問題所在。

解決辦法

編輯站點的 _config.yml,而不是 melody.yml,找到 URL 區域,在後面加上自己 Blog 的 GitHub Link,這裏爲什麽使用 GitHub Link 而不使用個人購買的獨立域名,是因爲獨立域名總是有到期的時候,如果某一天忘記續費,那基於獨立域名的 Link 就會失效,而失去本來應有的功能。

# URL
## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
url: https://opsdarren.github.io //添加你的 GitHub Link

同樣的,修改文章作者 Email 是找到 Site 區域,在 email 後面加上自己的郵箱。

# Site
title: shrun.me
subtitle: 'show running-configuration of Darren'
description: ''
keywords:
author: Darren
language: en
email: [email protected]
timezone: ''

修改后效果如下:

更改 Blog Favicon

問題描述

網頁標簽欄的 favicon 圖標還是 theme 自帶的圖標,我想要換成自己的 favicon 圖標。

解決辦法

選擇一張自己喜歡的圖片,到網路上搜尋 favicon 製作的網站,上載上去製作成 16*16 或者 32*32 的 ico 檔案再下載下來,我自己是放到 /source/ 目錄下,并且修改 melody.yml 如下:

# Favicon
# ---------------
favicon: /favicon.ico

修改后效果如下:

Hexo 資料夾大小寫顯示問題

問題描述

由於我一開始創建 categories 和 tags 頁面的時候,習慣性輸入成首字母大寫,結果觸發了意想不到的問題。後面搜尋了下網路資料,發現原來 GitHub 對字母大小寫不敏感,所以我在後續將本地資料夾 Categories 和 Tags 修改成爲 categories 和 tags 之後,在 GitHub 上依舊顯示為 Categories 和 Tags,這就很蛋疼了,因爲網頁地址上大小寫對於顯示是有影響的,導致我的 categories 和 tags 頁面都顯示為 404,但是在本地測試的時候是正常的。

解決辦法

所以我進入我本地 Blog 的 .deploy_git 資料夾。

[email protected] MINGW64 /f/Web/Blog (master)
$ cd .deploy_git/
[email protected] MINGW64 /f/Web/Blog/.deploy_git (master)
$ vim .git/config

使用 vim 修改 .git/config 檔案

[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = false //不忽略大小寫
[branch "master"]
remote = https://github.com/OpsDarren/opsdarren.github.io
merge = refs/heads/master

然後刪除 .deploy_git 資料夾下所有檔案,並 push 到 GitHub 上,刪除 GitHub 倉庫裏所有檔案。

[email protected] MINGW64 /f/Web/Blog/.deploy_git (master)
$ git rm -rf *
$ git commit -m "clean all file" //提交並添加操作説明
$ git push

此時,到 GitHub 倉庫查看,發現原有的 Categories 和 Tags 資料夾還存在,然後使用 git 命令刪除這兩個資料夾。

[email protected] MINGW64 /f/Web/Blog/.deploy_git (master)
$ git rm -r -n --cached Categories //-n 表示不會刪除檔案,而是顯示要刪除的檔案的預覽,確認無誤后
rm 'Categories/Hexo/index.html'
rm 'Categories/index.html'
[email protected] MINGW64 /f/Web/Blog/.deploy_git (master)
$ git rm -r --cached Categories //正式刪除 Categories 資料夾
rm 'Categories/Hexo/index.html'
rm 'Categories/index.html'
[email protected] MINGW64 /f/Web/Blog/.deploy_git (master)
$ git commit -m "delete Categories and Tags" //提交並添加操作説明
$ git push

同理對 Tags 資料夾進行操作。

然後,回到 Hexo 根目錄,重新生成並部署。

[email protected] MINGW64 /f/Web/Blog (master)
$ hexo clean && hexo g
[email protected] MINGW64 /f/Web/Blog (master)
$ hexo d

結尾

以上 4 點就是我在部署 Hexo Blog 過程中遇到的一些問題及解決辦法,如果後續我還有遇到一些關於 Hexo 的問題,再更新補充到本文。

Author: Darren
Link: https://opsdarren.github.io/2019/11/23/some-problems-and-solutions-encountered-during-the-deployment-of-this-hexo-blog/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.