搭建Hexo博客中碰到的坑

前段時(shí)間上網(wǎng)查資料時(shí)看到了好幾個(gè)很不錯(cuò)的個(gè)人博客,感覺很棒,自己也想搭建一個(gè)玩一下,剛好在萬(wàn)網(wǎng)查到自己的域名niujiajun.com沒被注冊(cè),就搜集資料準(zhǔn)備開干了。雖然現(xiàn)在早就不再是博客的時(shí)代了,但本來也沒想著靠這個(gè)干什么,只是說能有個(gè)專屬自己地方能分享記錄自己的思考,資源和學(xué)習(xí)成果,可以把瑣碎的東西總結(jié)歸納然后寫出來,畢竟寫出來>說出來>想出來。

不簡(jiǎn)單的介紹

好了費(fèi)話不多說了,開始復(fù)盤博客搭建的整個(gè)過程。首先簡(jiǎn)單介紹一下,我的博客由Hexo作為博客框架,Github提供的300M免費(fèi)空間作為服務(wù)器,Next作為博客的主題。Next主題中又集成了多說的評(píng)論、分享系統(tǒng)和熱評(píng)文章功能,百度統(tǒng)計(jì)服務(wù)和Swiftype站內(nèi)搜索服務(wù)。
反正就是一鍋亂燉吧,其實(shí)我也不太了解這些功能和服務(wù),就一步步按教程走就好了。整個(gè)搭建耗時(shí)4天,其實(shí)1天就能把基本的東西搭建好,剩下的三天都在處理問題和完善細(xì)節(jié)。如題,這篇文章的目的并不是講解如何搭建一個(gè)Hexo博客,而是記錄我在搭建博客過程中遇到的問題,并給出我的解決方法。

搭建博客的準(zhǔn)備

先放幾個(gè)Windows環(huán)境下搭建Hexo博客的教程:

這類教程網(wǎng)上一搜一大把,這里給的是我覺得寫得可以的。還有一個(gè)比較作弊一些的自動(dòng)化搭建工具:

這個(gè)是我快搭好的時(shí)候發(fā)現(xiàn)的,不喜歡太傻瓜式的,且不想前功盡棄,所以我是沒用過的,療效如何我也不知道。
然后如果每個(gè)教程都大概看一下的話,可以發(fā)現(xiàn)每個(gè)教程的步驟不太一樣,這就很討厭了。其實(shí)上上周我就嘗試過搭建,就是因?yàn)榭吹慕坛滩粚?duì),所以剛開始就碰到了問題,于是放棄,拖了兩周又重頭再來。可見一個(gè)好的教程是成功他媽,下面是我看了幾篇教程后自己的步驟:

  • 注冊(cè)github賬號(hào),創(chuàng)建一個(gè)yourname.github.io的倉(cāng)庫(kù)
  • 買個(gè)喜歡的域名
  • 下載Node.jsGit
  • 利用Git安裝Hexo,并進(jìn)行本地測(cè)試
  • 部署本地文件到Github進(jìn)行查看
  • Github Pages綁定域名
  • 安裝Next主題,并進(jìn)行優(yōu)化
  • 博客搜索引擎推廣

這里要進(jìn)行注解的是,有的教程會(huì)讓配置SSH密鑰,SSH密鑰可以為了防止其他人惡意部署文件到你的倉(cāng)庫(kù),使用以后每次部署文件都需要登錄Github賬號(hào),可以不配置。
有的教程中還會(huì)要求下載Github客戶端,但我覺得沒什么卵用。


曲折的路和路上的坑

路很長(zhǎng),慢慢來。

倉(cāng)庫(kù)的名字

倉(cāng)庫(kù)的名字的正確格式是github用戶名.github.io,之前沒仔細(xì)看,隨便起了個(gè),果斷報(bào)錯(cuò)。

關(guān)于Git

Git是Git Bash不是Github更不是Github Shell,是一個(gè)命令行工具,長(zhǎng)這個(gè)樣子。
git-bash-image

我剛開始就搞錯(cuò)了,然后Hexo的安裝就失敗了。

Hexo本地測(cè)試的時(shí)候要注意:

1.Git要運(yùn)行在本地Hexo的根目錄下。
2.Git中Ctrl + C是stop的快捷鍵,不要使用Ctrl + CCtrl + V的快捷鍵,用右鍵。
3.優(yōu)化主題時(shí),修改Hexo根目錄下的_config.yml站點(diǎn)配置目錄后,要重新啟動(dòng)Hexo再刷新,修改next主題目錄下的_config.yml主題配置目錄則只需刷新即可.
4.本地測(cè)試是Hexo is running,Git顯示如下,其他狀態(tài)便無(wú)法連接

$ hexo s
INFO  Start processing
INFO  Hexo is running at http://localhost:4000/. Press Ctrl+C to stop.

如何綁定域名

綁定域名是個(gè)大坑,我有兩天的時(shí)間卡在了這上面,所以這里要詳細(xì)講一下綁定的過程

ping出Github Pages的IP

具體方法是打開win的命令行工具CMD,輸入

ping yourname.github.io

如圖

ping

返回的23.235.47.133就是Github Pages的IP,我拿到這個(gè)IP后直接在瀏覽器輸入,結(jié)果就是404

ip-404

我就很費(fèi)解,為什么返回的ip找不到對(duì)象,然后我再次ping了一下
ping-error

WHAT THE FUCK?IP變成了185.31.18.133,是不是在玩我
biaoqing1

然后上網(wǎng)查教程,沒錯(cuò)啊,就是這樣啊,可為什么會(huì)出問題呢?然后就一直卡著,最后加了個(gè)Hexo群?jiǎn)柫讼拢矝]有人說出原因,根據(jù)后面的嘗試覺得可能每個(gè)結(jié)果都是對(duì)的,也就是說填哪個(gè)都行

把獲取的IP綁定到域名上

上一步有點(diǎn)混亂,我也不知道該綁定哪個(gè)IP,只好先試一下。看了網(wǎng)上的教程,很多人在DNSpod去綁定,如繼利用github創(chuàng)建自己的博客(二)---綁定域名,我覺得在哪設(shè)置都行,就直接在阿里云的控制臺(tái)設(shè)置了。
首先找到控制臺(tái)-->產(chǎn)品與服務(wù)-->域名-->域名列表

aliyun

在你要設(shè)置的域名中點(diǎn)擊解析
jiexi

如果首次修改可以選擇新手引導(dǎo)設(shè)置,不是首次就只能選擇修改了,修改的時(shí)候只要修改兩個(gè)記錄類型為A,主機(jī)記錄分別為@www的行就可以了。
dns-set

新手引導(dǎo)設(shè)置只需修改網(wǎng)址解析
new

PS:有的教程中說要新建CNAME,然后指向yourname.github.io,我試了,并不行,和已建的有沖突
好了,域名設(shè)置好了,在瀏覽器輸入

niujiajun.com

好了,接下來就是見證奇跡的時(shí)刻了


404

excuse me?怎么還是404,到底是哪出了問題,然后我又ping了一次拿新的ip綁定還是404,重新部署了文件直接無(wú)法顯示網(wǎng)頁(yè)了,重新申請(qǐng)個(gè)Github賬號(hào),然后重新綁定,還是404。


biaoqing2

搞了很久還是不行,后面在網(wǎng)上和群里問出,到這里域名綁定并沒有結(jié)束,還差關(guān)鍵一步。

在yourname.github.io的根目錄下添加CNAME

具體就是在Hexo目錄里的source文件下添加一個(gè)名為CNAME的文件,注意這個(gè)文件是沒有后綴的,千萬(wàn)不要設(shè)置成.txt文本文件,文件的內(nèi)容就是域名,格式如:

niujiajun.com

添加后部署文件,這個(gè)時(shí)候再試,應(yīng)該就成功了。


biaoqing3

其他步驟就按教程就行了。

搜索引擎推廣時(shí)的注意

HTML驗(yàn)證文件

下載了驗(yàn)證文件后,部署到根目錄下,點(diǎn)擊完成驗(yàn)證,卻發(fā)現(xiàn)


baidu

google

這是因?yàn)閔exo編譯文件時(shí),會(huì)給下載的HTML文件中添加其他的內(nèi)容,導(dǎo)致驗(yàn)證失敗。
比如本機(jī)內(nèi)google文件的原內(nèi)容是

google-site-verification: google28a167413f7cb18a.html

Github里google文件的內(nèi)容卻是

<!doctype html>


<html class="theme-next mist use-motion">
<head>
  <meta charset="UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/>

......

等等一大堆,所以需要在Github里手動(dòng)修改驗(yàn)證HTML文件,或者不編譯,只需執(zhí)行

hexo c
hexo d

打開HTML文件只有一串字符


yanzheng

提交sitemap站點(diǎn)地圖

教程中說需要在在博客目錄的_config.yml中添加如下代碼

#自動(dòng)生成sitemap
sitemap:
path: sitemap.xml
baidusitemap:
path: baidusitemap.xml

然后編譯,就會(huì)在博客根目錄的public下面發(fā)現(xiàn)生成了sitemap.xml以及baidusitemap.xml。但我的情況是,不添加可以生成,添加后反而不能生成。
然后,我生成的文件如下

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

  <url>
    <loc>http://yoursite.com/2016/04/13/hello-world/</loc>
    <lastmod>2016-04-16T07:39:13.917Z</lastmod>
    <data>
        <display>
        <title>Hello World</title>
        <pubTime>2016-04-13T07:00:20.947Z</pubTime>

        </display>
    </data>
    </url>
</urlset>

可以看到,編譯器并沒有把yoursite.com改為niujiajun.com,這里需要手動(dòng)修改,但有一點(diǎn)要注意的是修改后部署文件不能再編譯(hexo g)了,因?yàn)榫幾g了以后又會(huì)變回yoursite.com,所以寫了新的文章后記得修改sitemap.xml。
然后把sitemap文件提交給搜索引擎就行了。

一些補(bǔ)充

hexo 命令

hexo new "postName" #新建文章
hexo new page "pageName" #新建頁(yè)面
hexo generate #生成靜態(tài)頁(yè)面至public目錄
hexo server #開啟預(yù)覽訪問端口(默認(rèn)端口4000,'ctrl + c'關(guān)閉server)
hexo deploy #將.deploy目錄部署到GitHub
hexo help  # 查看幫助
hexo version  #查看Hexo的版本
hexo deploy -g  #生成加部署
hexo server -g  #生成加預(yù)覽
命令的簡(jiǎn)寫
hexo n == hexo new
hexo g == hexo generate
hexo s == hexo server
hexo d == hexo deploy

部署文件需要三步

hexo c
hexo g
hexo d

有時(shí)不需要hexo g

設(shè)置題目、分類、標(biāo)簽

在Markdown文件的開頭添加

---
title: 你的題目
tags: 你的標(biāo)簽
category: 你的分類
---

如果使用hexo new命令新建文章則會(huì)自動(dòng)生成

多個(gè)標(biāo)簽的設(shè)置

方式一:仿照Hexo配置文件中的寫法

tags:
  - 前端
  - Hexo
  - HTML
  - JavaScript

方式二:偽JavaScript數(shù)組寫法

tags: [前端,Hexo,HTML,JavaScript]

多個(gè)分類也是如此

設(shè)置索引目錄里的圖片

因?yàn)樗饕O(shè)置為提取文檔前150個(gè)字符,所以想在索引目錄中插入圖片,就在文章開頭插入圖片即可。

首頁(yè)只顯示一篇文章

這好像是Next主題的一個(gè)bug,出現(xiàn)這種狀況可以兩次編譯試一下

hexo c
hexo g
hexo g
hexo s

我也有過這種錯(cuò)誤,但后面發(fā)現(xiàn)是自己md文件有錯(cuò)誤,tags:后沒加空格。注意命令行里錯(cuò)誤信息

gitbash-error

這個(gè)錯(cuò)誤就是在提示我md文件的tags標(biāo)簽處出現(xiàn)了錯(cuò)誤。


回看一下好像也沒什么難的,一步步按著教程來就可以了,有什么不懂的網(wǎng)上查一下就OK了。

end

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,797評(píng)論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,179評(píng)論 3 414
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,628評(píng)論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,642評(píng)論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,444評(píng)論 6 405
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 54,948評(píng)論 1 321
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,040評(píng)論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,185評(píng)論 0 287
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,717評(píng)論 1 333
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,602評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,794評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,316評(píng)論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,045評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,418評(píng)論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,671評(píng)論 1 281
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,414評(píng)論 3 390
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,750評(píng)論 2 370

推薦閱讀更多精彩內(nèi)容