JekyllのHTMLを書いていて、パスの書き方で混乱してしまったのメモ。

レイアウト用のHTMLを編集していたら、ファイルのパスをこんな書き方にしていた。


<a href="{{ site.baseurl }}/assets/image.jpg"/>feed</a>

以前、古いテーマを参考にして、自分のソースでもこの書き方にしてしまったようだ。Jekyllの仕組みがわかっていれば、理屈はわかるが、いささか ad hoc なやり方のようにも見える。

今は、Jekyllのフィルターを使う(とはいえ、2016年10月にJekyll 3.3で導入されているので、ずいぶん前の話)。


<a href="{{ "/assets/image.jpg" | relatvie_url }}"/>feed</a>

やはり、このほうがJekyll、というかLiquidらしくて、いい感じ。

_config.xmlbaseurlを例えば、"/base"と指定していれば、


<a href="/base/assets/image.jpg"/>feed</a>

こんな感じのHTMLが生成される。

絶対パスでも考え方は同じで、absolute_urlフィルターを使えばよい。


<a href="{{ "/assets/image.jpg" | absolute_url }}"/>feed</a>

わざわざ説明する話でもないけれど、紛らわしいこともあるので、一応、記事にしてみた。

参考: Templates - Jekyll • Simple, blog-aware, static sites\