逐步教學
10. 部署
在這個最後步驟,我們將讓網站準備好上線。
Gemfile
為您的網站準備一個 Gemfile 是個好習慣。這確保 Jekyll 和其他寶石的版本在不同環境中保持一致。
在根目錄中建立一個 Gemfile
。檔案應該命名為「Gemfile」,不應該有任何副檔名。您可以使用 Bundler 建立一個 Gemfile,然後加入 jekyll
寶石
bundle init
bundle add jekyll
您的檔案應該類似於
# frozen_string_literal: true
source "https://rubygems.org"
gem "jekyll"
Bundler 安裝寶石並建立一個 Gemfile.lock
,它會鎖定目前的寶石版本,以供將來的 bundle install
使用。如果您想更新您的寶石版本,您可以執行 bundle update
。
當使用 Gemfile
時,您會執行類似 jekyll serve
的指令,並加上 bundle exec
前綴。因此完整的指令為
bundle exec jekyll serve
這會限制您的 Ruby 環境只使用在 Gemfile
中設定的 gem。
注意:如果使用 GitHub Pages 發布您的網站,您可以使用 github-pages
gem 來搭配 Jekyll 的製作版本,方法是在 Gemfile
中使用 github-pages
取代 jekyll
。在這種情況下,您可能還想從您的儲存庫中排除 Gemfile.lock
,因為 GitHub Pages 會忽略該檔案。
外掛程式
Jekyll 外掛程式讓您可以建立專屬於您網站的客製化產生內容。有許多 外掛程式 可供使用,您甚至可以自行撰寫。
有三個官方外掛程式,在幾乎任何 Jekyll 網站上都很有用
- jekyll-sitemap - 建立網站地圖檔案,以協助搜尋引擎索引內容
- jekyll-feed - 為您的文章建立 RSS 摘要
- jekyll-seo-tag - 加入 meta 標籤,以協助 SEO
要使用這些外掛程式,您首先需要將它們加入您的 Gemfile
。如果您將它們放在 jekyll_plugins
群組中,它們會自動載入 Jekyll
source 'https://rubygems.org'
gem "jekyll"
group :jekyll_plugins do
gem "jekyll-sitemap"
gem "jekyll-feed"
gem "jekyll-seo-tag"
end
然後將這些程式碼行加入您的 _config.yml
plugins:
- jekyll-feed
- jekyll-sitemap
- jekyll-seo-tag
現在透過執行 bundle update
來安裝它們。
jekyll-sitemap
不需要任何設定,它會在建置時建立您的網站地圖。
對於 jekyll-feed
和 jekyll-seo-tag
,您需要將標籤加入 _layouts/default.html
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>{{ page.title }}</title>
<link rel="stylesheet" href="/assets/css/styles.css">
{% feed_meta %}
{% seo %}
</head>
<body>
{% include navigation.html %}
{{ content }}
</body>
</html>
重新啟動 Jekyll 伺服器並檢查這些標籤是否已新增至 <head>
。
環境
有時你可能想要在生產環境中輸出某些內容,但在開發環境中則不需要。分析腳本就是最常見的範例。
若要執行此操作,你可以使用 環境。執行命令時,你可以使用 JEKYLL_ENV
環境變數來設定環境。例如
JEKYLL_ENV=production bundle exec jekyll build
預設情況下,JEKYLL_ENV
為開發環境。你可以使用 jekyll.environment
在 liquid 中取得 JEKYLL_ENV
。因此,如果你只想在生產環境中輸出分析腳本,你可以執行下列動作
{% if jekyll.environment == "production" %}
<script src="my-analytics-script.js"></script>
{% endif %}
部署
最後一個步驟是將網站放到生產環境伺服器上。執行此操作最基本的方式是執行生產環境建置
JEKYLL_ENV=production bundle exec jekyll build
然後將 _site
的內容複製到你的伺服器上。
網站建置時會清除目標資料夾
預設情況下,在建置網站時,_site
的內容會自動清除。網站建置程序未建立的檔案或資料夾將會被移除。
你可以透過在 keep_files
組態指令中指定某些檔案來保留這些檔案。你也可以將其他檔案保留在你的資產目錄中來保留這些檔案。
總結
這讓我們完成這個逐步教學課程,並開始你的 Jekyll 之旅!