前段時(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è)好的教程是成功他媽娱节,下面是我看了幾篇教程后自己的步驟:
這里要進(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è)樣子酪耕。我剛開始就搞錯(cuò)了导梆,然后Hexo的安裝就失敗了。
Hexo本地測試的時(shí)候要注意:
1.Git要運(yùn)行在本地Hexo的根目錄下迂烁。
2.Git中Ctrl + C
是stop的快捷鍵看尼,不要使用Ctrl + C
或Ctrl + 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
如圖
返回的23.235.47.133
就是Github Pages的IP,我拿到這個(gè)IP后直接在瀏覽器輸入旬陡,結(jié)果就是404
我就很費(fèi)解拓颓,為什么返回的ip找不到對(duì)象,然后我再次ping了一下
WHAT THE FUCK描孟?IP變成了
185.31.18.133
,是不是在玩我然后上網(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ù)-->域名-->域名列表
在你要設(shè)置的域名中點(diǎn)擊解析
如果首次修改可以選擇
新手引導(dǎo)設(shè)置
,不是首次就只能選擇修改
了轩娶,修改的時(shí)候只要修改兩個(gè)記錄類型為A儿奶,主機(jī)記錄分別為@
和www
的行就可以了。新手引導(dǎo)設(shè)置只需修改網(wǎng)址解析
PS:有的教程中說要新建CNAME,然后指向yourname.github.io,我試了罢坝,并不行廓握,和已建的有沖突
好了,域名設(shè)置好了嘁酿,在瀏覽器輸入
niujiajun.com
好了隙券,接下來就是見證奇跡的時(shí)刻了
excuse me?怎么還是404,到底是哪出了問題闹司,然后我又ping了一次拿新的ip綁定還是404娱仔,重新部署了文件直接無法顯示網(wǎng)頁了,重新申請(qǐng)個(gè)Github賬號(hào)游桩,然后重新綁定牲迫,還是404。
搞了很久還是不行借卧,后面在網(wǎng)上和群里問出盹憎,到這里域名綁定并沒有結(jié)束,還差關(guān)鍵一步铐刘。
在yourname.github.io的根目錄下添加CNAME
具體就是在Hexo目錄里的source文件下添加一個(gè)名為CNAME
的文件陪每,注意這個(gè)文件是沒有后綴的,千萬不要設(shè)置成.txt文本文件,文件的內(nèi)容就是域名檩禾,格式如:
niujiajun.com
添加后部署文件挂签,這個(gè)時(shí)候再試,應(yīng)該就成功了盼产。
其他步驟就按教程就行了饵婆。
搜索引擎推廣時(shí)的注意
HTML驗(yàn)證文件
下載了驗(yàn)證文件后,部署到根目錄下戏售,點(diǎn)擊完成驗(yàn)證侨核,卻發(fā)現(xiàn)
這是因?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文件只有一串字符
提交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ò)誤信息
這個(gè)錯(cuò)誤就是在提示我md文件的tags標(biāo)簽處出現(xiàn)了錯(cuò)誤屈暗。
回看一下好像也沒什么難的,一步步按著教程來就可以了,有什么不懂的網(wǎng)上查一下就OK了恐锦。
end