hexo博客本地部署流程


一年前用hexo部署過博客,由於其他事情導致長時間未使用,后來又嘗試了wordpress與typecho,但個人比較喜歡修改主題樣式,感覺wordpress與typecho的封裝性太強,於是又回來繼續使用hexo。記錄自己重新部署hexo的過程,更新以前的部署筆記,故有的時間顯示為2019年,但流程都是一樣的。

這篇筆記里可以看到

  1. 本地部署過程
  2. 靜態頁面部署到github過程
  3. 博客修改配置
  4. 綁定域名
  5. 源代碼保存到github

本地部署過程

需要安裝的東西:git、Node.js、hexo。

其中git安裝完成后的Git Bash,其作用與系統自帶的CMD命令行相同,系統中的CMD命令同樣可以在Git Bash中完成。

鏈接:

hexo使用命令安裝。

hexo官方文檔里面有關於hexo的各種使用方法,包括各個指令、文件的說明、如何更改網站的一些信息等等。


hexo常用指令:

hexo new "title" 新建文章(md文件),title為文章的標題
hexo new page "pagename" 新建網頁,pagename為網頁的名稱
hexo clean 清除部署的緩存
hexo n == hexo new 新建一篇文章
hexo g == hexo generate 生成靜態頁面
hexo s == hexo server 本地部署,可預覽網站,默認端口為4000,瀏覽器輸入localhost:4000即可進入網站進行預覽,回到git-bash按ctrl+c退出預覽(退出后localhost:4000失效)
hexo d == hexo deploy 將網站部署到GitHub
hexo g -d 生成頁面並部署到GitHub
hexo g -s 生成頁面並本地部署進行預覽


安裝git:

本文章書寫日期時最新版本為2.22.0版本

因版本可能不同,因此安裝過程中的組件選擇可能會有所差異,基本默認選項即可

下載完成后進入安裝界面 (注:以下安裝的選項請以實際自身需求為准,僅供參考):

mark

選擇需要安裝的組件。

mark

選擇git的默認編輯器:

mark

配置環境變量選項,推薦默認第二項:

mark

選擇https傳輸協議 默認即可:

mark

選擇git的換行方式 請根據自身需求更改:

mark

設置git命令行的樣式:

mark

設置選項:1.是否允許文件緩存 2.是否允許git許可證管理,默認勾選:

mark

是否參與新的測試,貌似是會使git更快,但還不穩定:

mark

install 安裝即可:

mark

git安裝完成后,需要進行配置,在git安裝目錄或菜單欄中找到git-bash,打開后如圖

mark

mark

輸入如下,其中" "中的your name 和your email為你的Git Hub用戶名(非昵稱)與郵箱

git config --global user.name "your name"
git config --global user.email "your email"

並可通過以下命令查詢用戶名與郵箱

git config user.name
git config user.email

結果如下

mark

安裝Node.js:

該文章書寫時,版本為10.16.0

mark

安裝界面:

mark

選擇安裝模式,我選擇了第四個,next即可:

mark

以下過程命令行既可使用windows的cmd,也可以使用git安裝過程中的 git-bash進行操作

命令行中輸入node -v可查看node的版本 ,輸入 npm -v查看npm包的版本

node -v
npm -v

mark

因為npm為國外源,下載速度感人,故使用cnpm使下載指向國內源。

使用淘寶鏡像下載 cnpm:

npm install -g cnpm --registry=https://registry.npm.taobao.org

下載完后查看cnpm版本

cnpm -v

mark

查詢成功則證明安裝完成。

安裝hexo:

使用cnpm下載hexo,用hexo -v查看hexo的版本:

cnpm install -g hexo-cli
hexo -v

mark

hexo部署博客:

在我的電腦中創建文件夾用於存儲博客網站,即網站的站點。文件夾名稱自定義,我使用blog,目錄為D:\blog。打開blog文件夾,右鍵空白處點擊Git Bash Here在該目錄下打開Git Bash(或者用CMD切換到該目錄也行)。

mark

輸入cnpm install hexo --save安裝組件。

cnpm install hexo --save

輸入hexo init進行初始化,等待時間較長,約幾分鍾。

hexo init

mark

:若blog文件夾非空,則會報錯:

mark

使用hexo s 在本地啟動博客

hexo s

mark

如圖所示顯示本地部署成功

打開網頁,地址欄輸入http://localhost:4000即可從本地進入博客

mark

目錄內的各個文件的作用參考官方文檔

靜態頁面部署到github過程

在github上創建靜態網站的存儲庫:

通過Ctrl+C停止服務

mark

登陸自己的Git Hub 點擊進入登陸界面

登陸成功后,網頁右上角個人頭像旁邊,點擊 + 號 選擇New repository創建一個新的倉庫

mark

輸入的信息如下,其中 Repository name內容必須是 github的用戶名,而不是昵稱。點擊Create repository創建項目。

mark

創建成功后,界面如圖,復制https的鏈接。

mark

回到git-bash 使用cnpm安裝git部署插件,插件名為:hexo-deployer-git

cnpm install --save hexo-deployer-git

安裝過程中若有警告可以忽略

修改 _config.yml 文件:

打開網站目錄的 _config.yml

移動到最低端,在deploy:后面寫入內容

  type: git
  repo: 剛剛復制的https鏈接
  branch: master

mark

推送到github page:

修改完成后,保存文件,在Git Bash中輸入

hexo d

即可將本地的網站服務器渲染出的靜態頁面上傳到github。

mark

該過程可能需要輸入github和coding的用戶名和密碼,若Git Hub配置過SSH則不需要輸入。

如果有報錯,檢查之前的配置是否有誤。

git config --global user.name "your name"
git config --global user.email "your email"

配置語句是否正確 your name為用戶名(非昵稱)

推送完成后,再次進入倉庫,即可看到上傳完成的靜態網頁。

mark

並且可以通過 你的用戶名.github.io 來進入網站,此時網站已經部署到github page,其他人也可以通過該地址訪問你的網站。

mark

hexo s指令僅啟動本地服務,修改后只能通過localhost:4000來進行訪問,此時沒有推送頁面到github。想要推送到github生成頁面的話,需要通過hexo d進行推送。推送前輸入指令hexo clean清除緩存,然后再輸入hexo g重新生成靜態頁面,然后推送即可。

博客修改配置

官方文檔里有基本的配置文件內容說明,例如修改博主名稱、網站名稱、副標題、描述等等。

永久鏈接:

打開博客目錄下的配置文件_config.yml,按Ctrl+F搜索 URL

mark

url內容不用改,修改permalink內容

其意思為:修改一篇文章的url

默認的設置為將一篇文章的創建日期+title作為永久鏈接,但這樣並不美觀,並且在分享鏈接時因為編碼問題中文會被轉碼造成如下結果

mark

鏈接的格式為 你的域名/permalink內容,

比如我修改后的post/:year:month:day:hour:minute/

會將創建文件時的年月日時分作為永久鏈接,避免了分享中文時的亂碼。

加一個post是為了將文章統一放在一個文件夾中,在生成靜態網頁時,會生成一個post文件夾,里面存放生成的文章。還有其余的樣式,在官方文檔的永久鏈接中有說明。

還有一種改法是使用:urlname,然后在文檔的頭信息中給urlname參數,讓該參數的值為永久鏈接,但同樣避免不了中文轉碼的問題,我個人就使用日期作為永久鏈接了。但這樣其實有個問題就是以后管理文檔時,post文件夾內顯示的都是日期數字,不能直觀的看到文章標題。

修改默認文章模板:

打開站點目錄下的scaffolds文件夾,打開post.md

該markdown文檔的內容會在生成一個markdown文檔后自動添加進去。

---
title: {{ title }} 
date: {{ date }} 
comments: true
toc: true
top: false

# 若使用urlname作為永久鏈接則添加該項
urlname:

categories: 
- [父類,子類]
- 同級分類
tags: [標簽1,標簽2]
---
# 前言

<!-- more -->

提前設置好模板,這樣生成一個新markdown文檔后,只需修改urlname以及設置分類categories與標簽tags即可,若主題支持,可設置是否有目錄toc,是否置頂top,是否開啟評論comments,不同的主題可能名稱不同,根據自己的主題修改即可。

若有不支持的功能也不會出錯,僅僅無法加載該內容。

{{ title }}與{{ date }} 為標題與文檔創建日期,不需要改動

分類categories里,前面有減號-的表示為同級分類,中括號[]括起來的為父子分類。

例如

categories: 
- [生活,筆記]
- 娛樂

文檔在推送后,分類為生活類中的筆記類,同時也是娛樂類。

也可以將娛樂類改為 [娛樂,音樂],這樣就同時是娛樂類中的音樂類。

綁定域名

解析域名

以我的域名為例,不同商家解析時都差不多。在域名管理處點擊解析

mark

點擊添加記錄。會出現如圖的添加設置。

mark

mark

主機記錄可理解為域名前綴,即用戶輸入什么樣的網址訪問到該解析目標。如果主機記錄為www ,則用戶需要輸入www.[你的域名]才能訪問到該解析目標。如果為@,則直接輸入域名即可。如果不添加www ,則通過www+域名方式訪問的用戶將訪問失敗,@同理,其余的也同理。

mark

記錄類型為解析目標的類型,如果想把該域名綁定到一個ip地址,則選A,如果目標為一個網址,則選CNAME。

這里有兩種綁定方法,一種是選CNAME然后在記錄值填寫 [yourname].github.io ,另一種是選A,然后通過cmd命令行輸入 ping [yourname].github.io 獲取ip地址,記錄值里填入ip地址。

獲取 [yourname].github.io 的ip地址,如圖,ping通后會顯示ip地址。

mark

記錄值根據選擇的記錄類型進行填寫。線路選默認。TTL為緩存生效時間,默認600秒即可,即10分鍾后生效(實際大約需要5 分鍾)。填寫完畢后點擊保存。可以為域名填寫多個記錄, 如圖

mark

前兩個是為github pages綁定時添加的記錄,一個www、一個@,這樣可以讓用域名直接訪問的和加了www訪問的用戶都能訪問到自己的博客 (部署到服務器后就不再用了所以暫停了)。接下來兩條A類型是將網站部署到自己的服務器時,把域名解析到了自己的服務器IP地址,這樣可以通過www、或者直接輸入域名的方式來訪問自己的服務器。最后一條是綁定的七牛雲,用來當做博客的圖床。每條記錄后面都有操作可以進行修改以及暫停和開啟。

綁定到github pages

登陸到自己的github,進入網站綁定的倉庫,進入設置

mark

往下找到GitHub Pages,在Custom domain填入剛剛購買的域名,點擊save保存。勾選Enforce HTTPS則開啟HTTPS安全協議。

mark

然后到本地博客source文件夾下新建文件CNAME,輸入內容為自己的域名,並將文件尾綴如.txt等刪掉然后保存即可。(沒有的話貌似每次將代碼從本地推到github都會使域名訪問404,因為每次推送都會覆蓋原本的倉庫代碼。所以把CNAME文件放在source中,使每次推送都會建立一個CNAME)

至此,github pages的域名綁定完成了,稍等片刻即可嘗試使用域名訪問。

源代碼保存到github

創建分支

在倉庫中的文件列表的左上方,點擊Branch。

mark

搜索 source (分支名,自定義),會提示未找到,是否創建,點擊即可創建該分支

mark

設置新建分支為默認分支

進入設置,左邊的列表中選擇 Branches,默認分支為master,改為新建的分支,然后點擊Update更新。

mark

同步配置

首先隨便找個地方新建一個文件夾,將你的倉庫克隆下來。

打開新建的文件夾,右鍵空白處點擊Git Bash Here

然后輸入下方命令克隆文件

git clone 【你的倉庫地址】

倉庫地址獲取方法:

mark

點擊紅框內的按鈕復制,然后粘貼到clone后面即可,用空格與clone隔開。

克隆完成后,該文件夾內會出現【你的用戶名】.github.io文件夾,進去拷貝.git文件夾到本地的博客根目錄,然后這個新建的文件夾就可以刪除了。

接下來在博客根目錄右鍵空白處,打開git bash,輸入下方命令,警告不用理會,若沒出現報錯就沒問題。

會需要github的帳號密碼,填一下就OK了。

git remote add origin 【你的倉庫地址】
git add .
git commit -m "【描述,隨便寫】"
git push origin 【你的保存源代碼的分支名】

描述部分的效果如圖,會將內容顯示在該分支上。

mark

每次推送時,輸入的描述都會在這次推送時更新的文件后面顯示出來。

接下來每次想保存時,輸入下方指令即可,

git add .
git commit -m "【描述】"
git push

但每次都要輸入這么多很麻煩,可以創建一個腳本文件,在博客根目錄下新建一個txt文本文件,名字隨意自己能知道是保存用的就行,將上方三條指令寫進去,描述寫好后以后固定都是這個,然后將文件改為.sh結尾。也可以直接建一個.sh尾綴文件,然后用編輯器打開寫入。這樣以后每次運行這個腳本文件就會自動執行上面三條指令,完成推送。

mark

本地同步到github就完成了,但要注意的是只保存了關鍵文件,如主題、文章、配置等。

node_modules文件夾和public文件夾是沒有保存上去的,public文件夾是生成的靜態頁面,不需要保存,若遷移后直接生成就有了。

node_modules文件夾存放着需要用到的插件,如果想保存的話,打開.gitignore文件,把里面的node_modules刪掉保存即可,但是這樣會造成每次保存都需要很久時間,因為里面東西太多了,看個人需要決定是否需要保存。

只要配置文件里面的deploy里的branch的值是master的話,生成的靜態頁面會推送到master分支

mark

配置完成后,若以后要遷移到其他的服務器或者電腦上,只需要安裝好git、Node.js、hexo,然后使用hexo init命令初始化一個根目錄,再克隆下來就行了,若不指定克隆分支的話,會克隆默認分支,即設置好的保存博客源代碼的分支。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM