搭建Hexo博客中碰到的坑

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

不簡單的介紹

好了費(fèi)話不多說了,開始復(fù)盤博客搭建的整個(gè)過程瘸恼。首先簡單介紹一下劣挫,我的博客由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的倉庫
  • 買個(gè)喜歡的域名
  • 下載Node.js挠蛉、Git
  • 利用Git安裝Hexo祭示,并進(jìn)行本地測試
  • 部署本地文件到Github進(jìn)行查看
  • Github Pages綁定域名
  • 安裝Next主題,并進(jìn)行優(yōu)化
  • 博客搜索引擎推廣

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


曲折的路和路上的坑

路很長,慢慢來毡代。

倉庫的名字

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

關(guān)于Git

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

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

Hexo本地測試的時(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.本地測試是Hexo is running,Git顯示如下狰域,其他狀態(tài)便無法連接

$ 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群問了下,也沒有人說出原因溉痢,根據(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ǎng)頁了,重新申請(qǐng)個(gè)Github賬號(hào)游桩,然后重新綁定牲迫,還是404。


biaoqing2

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

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

具體就是在Hexo目錄里的source文件下添加一個(gè)名為CNAME的文件陪每,注意這個(gè)文件是沒有后綴的,千萬不要設(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" #新建頁面
hexo generate #生成靜態(tài)頁面至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ù)覽
命令的簡寫
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è)字符颤诀,所以想在索引目錄中插入圖片字旭,就在文章開頭插入圖片即可。

首頁只顯示一篇文章

這好像是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)系作者
  • 序言:七十年代末往果,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子一铅,更是在濱河造成了極大的恐慌陕贮,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件潘飘,死亡現(xiàn)場離奇詭異肮之,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)卜录,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門戈擒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人艰毒,你說我怎么就攤上這事筐高。” “怎么了丑瞧?”我有些...
    開封第一講書人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵柑土,是天一觀的道長。 經(jīng)常有香客問我绊汹,道長稽屏,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任西乖,我火速辦了婚禮狐榔,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘获雕。我一直安慰自己薄腻,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開白布典鸡。 她就那樣靜靜地躺著被廓,像睡著了一般。 火紅的嫁衣襯著肌膚如雪萝玷。 梳的紋絲不亂的頭發(fā)上嫁乘,一...
    開封第一講書人閱讀 49,144評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音球碉,去河邊找鬼蜓斧。 笑死,一個(gè)胖子當(dāng)著我的面吹牛睁冬,可吹牛的內(nèi)容都是我干的挎春。 我是一名探鬼主播看疙,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼直奋!你這毒婦竟也來了能庆?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤脚线,失蹤者是張志新(化名)和其女友劉穎搁胆,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體邮绿,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡渠旁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了船逮。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片顾腊。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖挖胃,靈堂內(nèi)的尸體忽然破棺而出杂靶,到底是詐尸還是另有隱情,我是刑警寧澤冠骄,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布伪煤,位于F島的核電站,受9級(jí)特大地震影響凛辣,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜职烧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一扁誓、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蚀之,春花似錦蝗敢、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至失受,卻和暖如春讶泰,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背拂到。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來泰國打工痪署, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人兄旬。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓狼犯,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子悯森,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

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