前言
部署hexo靜態(tài)博客到生產(chǎn)環(huán)境通常有兩種方法:
- nohup命令執(zhí)行hexo s:由于hexo s是框架提供的調(diào)試方法,不是部署方式,因此在生產(chǎn)環(huán)境會(huì)存在性能問(wèn)題,不建議使用;
- nginx部署靜態(tài)資源:將本地調(diào)試好的hexo打包生成的public目錄部署到nginx上特恬。nginx性能好,訪問(wèn)速度快徐钠。
Hexo
-
配置:
-
處理二級(jí)目錄:當(dāng)生產(chǎn)環(huán)境中癌刽,靜態(tài)博客部署在二級(jí)目錄下(如:“http://域名(ip)/blog”這種情況),需要修改hexo工程下的_config.yml配置文件尝丐,否則打包生成的css显拜、js文件目錄會(huì)缺失(默認(rèn)在根目錄),導(dǎo)致無(wú)法加載樣式爹袁。一般修改
root
和url
,增加二級(jí)目錄
# URL ## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/' url: http://yoursite.com/blog root: /blog permalink: :year/:month/:day/:title/ permalink_defaults:
- 部署在根目錄無(wú)需處理
-
處理二級(jí)目錄:當(dāng)生產(chǎn)環(huán)境中癌刽,靜態(tài)博客部署在二級(jí)目錄下(如:“http://域名(ip)/blog”這種情況),需要修改hexo工程下的_config.yml配置文件尝丐,否則打包生成的css显拜、js文件目錄會(huì)缺失(默認(rèn)在根目錄),導(dǎo)致無(wú)法加載樣式爹袁。一般修改
打包:通常在調(diào)試環(huán)境無(wú)需打包远荠,修改后使用
hexo s
,即可生效失息,可以直接在本地查看效果譬淳。但是,以靜態(tài)資源的方式部署需要打包生成靜態(tài)資源盹兢,命令為:hexo generate
邻梆。
nginx
-
配置靜態(tài)資源路由
-
示例:hexo打包完成之后,以靜態(tài)資源的方式部署到nginx绎秒,增加一個(gè)
location
模塊浦妄。路由的細(xì)節(jié)有兩種:root
和alias
,主要區(qū)別就是怎么解析location后面的uri替裆。以下代碼以root
為例:
location /blog { root html; index index.html; }
root規(guī)則
以上的示例校辩,說(shuō)明訪問(wèn)的實(shí)際路由為:html/blog/index.htmlalias規(guī)則
同樣的路徑,alias需要按下面這么寫辆童,location后面的blog不會(huì)接到alias后面,而且alias指定的目錄名后面一定要加上"/"惠赫。(^~
表示uri以某個(gè)常規(guī)字符串開(kāi)頭把鉴,用于匹配url路徑(而且不對(duì)url做編碼處理,例如請(qǐng)求/static/20%/aa,可以被規(guī)則^~ /static/ /aa 匹配到(注意是空格))庭砍。下面是alias示例:
location ^~ /blog/ { alias html/blog/; index index.html; }
-
示例:hexo打包完成之后,以靜態(tài)資源的方式部署到nginx绎秒,增加一個(gè)
-
nginx常用命令
- 啟動(dòng):nginx
- 停止:nginx -s stop
- 重啟:nginx -s restart
- 指定配置文件啟動(dòng):nginx -c 路徑