逐步教學

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 網站上都很有用

要使用這些外掛程式,您首先需要將它們加入您的 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-feedjekyll-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 組態指令中指定某些檔案來保留這些檔案。你也可以將其他檔案保留在你的資產目錄中來保留這些檔案。

更好的方法是使用 CI第三方 自動化此程序。

總結

這讓我們完成這個逐步教學課程,並開始你的 Jekyll 之旅!

  • 歡迎到 社群論壇 打招呼
  • 透過 貢獻 幫助我們讓 Jekyll 變得更好
  • 繼續建置 Jekyll 網站!
下一步
  1. 設定
  2. Liquid
  3. 前端資訊
  4. 版面
  5. 包含
  6. 資料檔案
  7. 資源
  8. 部落格
  9. 彙整
  10. 部署