分步教程
10. 部署
在此最后一步,我们将让网站做好生产准备。
GemfilePermalink
为你的网站准备一个 Gemfile 是一个好习惯。这可确保 Jekyll 和其他 gem 的版本在不同的环境中保持一致。
在根目录中创建一个 Gemfile
。该文件应命名为“Gemfile”,不应有任何扩展名。你可以使用 Bundler 创建一个 Gemfile,然后添加 jekyll
gem
bundle init
bundle add jekyll
你的文件应类似于
# frozen_string_literal: true
source "https://rubygems.org.cn"
gem "jekyll"
Bundler 安装 gem 并创建一个 Gemfile.lock
,该文件锁定当前 gem 版本以供将来 bundle install
使用。如果你想更新 gem 版本,你可以运行 bundle update
。
使用 Gemfile
时,你将使用带前缀 bundle exec
的命令(例如 jekyll serve
)。因此,完整命令为
bundle exec jekyll serve
这将限制你的 Ruby 环境仅使用 Gemfile
中设置的 gem。
注意:如果你使用 GitHub Pages 发布网站,你可以使用 github-pages
gem(而不是 jekyll
)来匹配生产版本的 Jekyll,方法是在 Gemfile
中使用它。在这种情况下,你可能还想从你的存储库中排除 Gemfile.lock
,因为 GitHub Pages 会忽略该文件。
插件Permalink
Jekyll 插件允许你创建特定于你网站的自定义生成内容。有许多 插件 可用,你甚至可以编写自己的插件。
有三个官方插件几乎适用于任何 Jekyll 网站
- jekyll-sitemap - 创建网站地图文件,以帮助搜索引擎索引内容
- jekyll-feed - 为你的帖子创建 RSS 源
- jekyll-seo-tag - 添加元标签以帮助进行 SEO
要使用这些插件,首先需要将它们添加到你的 Gemfile
中。如果你将它们放在 jekyll_plugins
组中,它们将自动被 Jekyll 要求
source 'https://rubygems.org.cn'
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>
中。
环境Permalink
有时你可能希望在生产环境中输出某些内容,但在开发环境中不输出。分析脚本就是最常见的示例。
要做到这一点,你可以使用 环境。你可以在运行命令时使用 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 %}
部署Permalink
最后一步是将网站放到生产服务器上。最基本的做法是运行生产构建
JEKYLL_ENV=production bundle exec jekyll build
然后将 _site
的内容复制到你的服务器上。
在网站构建时会清理目标文件夹
在构建网站时,默认情况下会自动清理 _site
的内容。将由网站构建过程创建的文件或文件夹将被删除。
可以通过在 keep_files
配置指令中指定某些文件来保留这些文件。可以通过将其他文件保留在资产目录中来保留这些文件。
总结Permalink
至此,本分步教程结束,您的 Jekyll 之旅即将开始!