Apache Web サーバーで実行していると仮定すると、Alias ディレクティブをセットアップして、通常の docroot 以外のディレクトリから画像を提供できます。VirtualHosts 構成を編集するためのアクセス権、またはエイリアス ディレクティブを作成するその他の機能 (たとえば、コントロール パネル経由) が必要です。
これがどのように機能するかの例として、jekyll ファイルを「/web/jekyll」というディレクトリに保存するとします。images ディレクトリを取得するには、次の手順を実行します。
基本的な jekyll ツリーとともに「_images」ディレクトリを追加します。次のようなものになります:
_config.yml
_images/
_layouts/
_posts/
_site/
index.md
Apache 構成を更新して、次のような Alias ディレクティブを追加します。
Alias /images /web/jekyll/_images
Apache 構成をリロードし、jekyll を実行してサイトを構築します。
イメージ ディレクトリ名はアンダースコアで始まるため、jekyll はビルド中に出力 _site にプッシュ/コピーしません。Apache は通常どおり _site ディレクトリからほとんどのファイルを喜んで提供しますが、"/web/jekyll/_site/_images/ test.jpg」の場合、「/web/jekyll/_images/test.jpg」から配信します。
ちなみに、私は、ソース コンテンツと出力コンテンツを jekyll のデフォルトよりももう少し分離するのが好きです。したがって、次のようにディレクトリ構造をセットアップします。
/web/jekyll/html/
/web/jekyll/images/
/web/jekyll/source/
/web/jekyll/source/_config.yml
/web/jekyll/source/_layouts
/web/jekyll/source/_posts
/web/jekyll/source/index.md
_config.yml で次のオプションを設定すると、
destination: ../html
そして、apache エイリアス ディレクティブを次のように設定します。
Alias /images /web/jekyll/images
Jekyll は「/web/jekyll/source」ディレクトリで実行されますが、出力は「/web/jekyll/html」ディレクトリに送信されます。最初の例と同様に、「http://jekyll/images/test.jpg」への呼び出しは「/web/jekyll/images/test.jpg」から提供されます。この設定は、サイト サービスの観点からは実際には違いはありません。生のソース ファイル、完全にベイクされた出力ファイル、およびエイリアスを介して動作する画像の間の明確な分離が気に入っています。