鍍金池/ 教程/ Java/ 部署方法
Assets
相關(guān)資源
創(chuàng)建頁(yè)面
基本用法
常見(jiàn)問(wèn)題
模板
升級(jí)
配置
部署方法
使用 Jekyll 的站點(diǎn)
頭信息
插件
博客遷移
永久鏈接
使用草稿
貢獻(xiàn)
分頁(yè)功能
安裝
目錄結(jié)構(gòu)
Data Files
常用變量
GitHub Pages
撰寫(xiě)博客
快速指南
附加功能

部署方法

Jekyll 生成的網(wǎng)站是靜態(tài)的,因此有很多種部署方法。下面列出了一些常見(jiàn)的部署方法。

網(wǎng)站托管服務(wù)商 (FTP)

傳統(tǒng)的網(wǎng)絡(luò)托管服務(wù)商允許你使用 FTP 上傳文件到他們的服務(wù)器。想通過(guò) FTP 上傳一個(gè) Jekyll 站點(diǎn),只需要運(yùn)行 jekyll 命令然后復(fù)制生成的 _site 目錄到你的托管賬號(hào)根目錄。多數(shù)托管服務(wù)商的跟目錄會(huì)是 httpdocspublic_html 目錄。

使用 Glynn 進(jìn)行 FTP 上傳

有一個(gè)叫 Glynn 的項(xiàng)目,可以幫助你簡(jiǎn)單的生成 Jekyll 站點(diǎn)并通過(guò) FTP 發(fā)送到你的主機(jī)。

自己的網(wǎng)絡(luò)服務(wù)器

如果你能夠直接連接到部署的網(wǎng)絡(luò)服務(wù)器,你可能有其它的方法傳輸文件 (如 scp,或者直接操作文件系統(tǒng)),而其它過(guò)程都一樣。要記住保證生成的 _site 目錄放到網(wǎng)絡(luò)服務(wù)器正確的根目錄下。

自動(dòng)化部署

也有一些自動(dòng)化部署 Jekyll 站點(diǎn)的方法。下面列出了幾種,如果你還有其它的,歡迎貢獻(xiàn),這樣其它人就也能知道它了。

Git post-update 鉤子

如果你使用 Git 管理你的 jekyll 站點(diǎn),自動(dòng)化部署非常簡(jiǎn)單,只需要給你的 Git 倉(cāng)庫(kù)設(shè)置一個(gè) post-update 鉤子,就像這樣

Git post-receive 鉤子

要讓一個(gè)遠(yuǎn)程服務(wù)器在你每次用 Git 推送修改時(shí)進(jìn)行部署,可以創(chuàng)建一個(gè)擁有所有要部署機(jī)器公鑰的賬號(hào),然后設(shè)置 post-receive 鉤子,其余的跟上面方法一樣。

laptop$ ssh deployer@example.com
server$ mkdir myrepo.git
server$ cd myrepo.git
server$ git --bare init
server$ cp hooks/post-receive.sample hooks/post-receive
server$ mkdir /var/www/myrepo

接著, 添加下面的代碼到 hooks/post-receive ,并保證服務(wù)器上已安裝 Jekyll:

GIT_REPO=$HOME/myrepo.git
TMP_GIT_CLONE=$HOME/tmp/myrepo
PUBLIC_WWW=/var/www/myrepo

git clone $GIT_REPO $TMP_GIT_CLONE
jekyll build -s $TMP_GIT_CLONE -d $PUBLIC_WWW
rm -Rf $TMP_GIT_CLONE
exit

最后, 在任意可以通過(guò)此鉤子部署的用戶機(jī)器上運(yùn)行下面的命令:

laptops$ git remote add deploy deployer@example.com:~/myrepo.git

剩下的就是告訴 nginx 或 Apache 監(jiān)聽(tīng) /var/www/myrepo目錄,然后運(yùn)行下面的命令:

laptops$ git push deploy master

Rake

另一個(gè)部署 Jekyll 站點(diǎn)的方法是使用 Rake,HighLine,和 Net::SSH。一個(gè)比較復(fù)雜的使用 Rake 部署多個(gè)分支的例子可以參考 Git Ready。

rsync

假如你已經(jīng)生成了 _site 目錄,就可以使用一個(gè)像 部署腳本 這樣的 shell 腳本 tasks/deploy rsync 到服務(wù)器了。當(dāng)然需要修改你的站點(diǎn)相應(yīng)的值。甚至還有 一個(gè) TextMate 匹配命令 可以幫你在 Textmate 中運(yùn)行這個(gè)腳本。 this script from within Textmate.

Rack-Jekyll

Rack-Jekyll 是一個(gè)部署站點(diǎn)到任意 Rack 服務(wù)的簡(jiǎn)單方法,如 Amazon EC2, Slicehost, Heroku 等。它也可以 shotgun, rackup, mongrel, unicorn, and others 一起運(yùn)行。

可以閱讀 這篇文章 了解如何使用 Rack-Jekyll 部署到 Heroku 。

Jekyll-Admin for Rails

如果想在 Rails 中維護(hù) Jekyll 站點(diǎn),Jekyll-Admin 包含了實(shí)現(xiàn)此功能直接可用的代碼。詳細(xì)可查看 Jekyll-Admin 的 README 。

Amazon S3

如果要在 Amazon S3 上托管你的站點(diǎn),可以使用 s3_website 。它會(huì)推送你的站點(diǎn)到 Amazon S3 上,Amazon S3 跟任意網(wǎng)絡(luò)服務(wù)器一樣,卻能夠動(dòng)態(tài)擴(kuò)容到幾乎無(wú)限流量。這種方式適用小流量博客站點(diǎn),因?yàn)槟阒恍枰獮槟闶褂玫牧髁扛顿M(fèi)。

OpenShift

如果你希望將網(wǎng)站部署到 OpenShift gear 上面,這里有一份教程 一份教程。

ProTip?: 使用 GitHub Pages 零麻煩托管

GitHub Pages 內(nèi)部由 Jekyll 驅(qū)動(dòng), 所以如果你想找個(gè)零麻煩、零花費(fèi)解決方案,Github Pages 是托管 Jekyll 驅(qū)動(dòng)站點(diǎn)的首選。