Jekyll - 開発環境と本番環境でconfigファイルを分ける方法
programmingはじめに
このサイトをJekyllで作っているのですが、ローカル上の開発環境とサーバ上の本番環境でconfigファイルを分けたいことがあり、無理やりですが意図した動作になったのでメモしておきます。
やり方
jekyll serve
やjekyll build
といったコマンドのオプションで--config
というものがあり、ここでconfigファイルを複数指定することが出来るようです。
これは指定した順番に読み込み、後のファイルで上書きするという動作をします。
例として以下のように2つのconfigファイルを作成します。
_config.yml
: 本番環境用の設定ファイル
mode: production
url: 'https://pcyaranaika.com'
# ...
_config_dev.yml
: 開発環境用に上書きする設定ファイル
mode: development
url: 'http://localhost:4000'
そしてローカルの開発環境では以下のようにjekyllを起動します。
jekyll serve -w --config _config.yml,_config_dev.yml
こうすればmode
とurl
が上書きされます。
本番環境用にビルドする際は、以下のようにします。
jekyll build --config _config.yml
どう使うか
例えば本番環境だけにアドセンスの広告やDISQUSのコメント欄を入れたい時に重宝します。
本番環境のみにアドセンス広告を入れる例を見てみます。
先ほどyamlのmode
で本番環境か開発環境かを区別できるようにしたので、それをテンプレート内で利用しましょう。
{% if site.mode == 'production' %}
{% include google_ad_sidebar.html %}
{% endif %}
こうすれば開発環境では広告を非表示にして、本番環境のみに表示することができます。