Jekyll - “包含”参考文件在“_includes”目录之外找不到

时间:2017-06-02 14:48:51

标签: include jekyll

我的Jekyll项目中有一个_includes目录,该目录中的一个.html文件需要引用_includes之外的图标目录中的图像,例如

{% include img/icons/facebook.svg %}

Jekyll无法编译,表明找不到该目录。我可以将图像添加到_includes目录中,但如果可能,我宁愿不这样做。有谁知道这是否可以做到?

谢谢!

2 个答案:

答案 0 :(得分:2)

要在include中包含图片,我们可以直接使用HTML引用它们,不需要使用include标记,因此您只需使用include代码:

<img src="/img/icons/facebook.svg">

或者如果你想要一个完整的路径:

<img src={{"/img/icons/facebook.svg"|absolute_url}}>

更新

问题在于include标记用法,它的意思是:

  

包含其他文件中的内容

不包含文件。

答案 1 :(得分:2)

我实际上将我的SVG文件放到_include / svg文件夹中以实现您想要的效果。在这种情况下,您可以保存几个HTTP请求,从而显着提高您的网站速度(至少我的网页速度值非常棒)。

令人遗憾的是,对于较新的Jekyll版本,您不再需要将include包含在include文件夹中。

您可以使用include_relative标记:

{% include_relative svgs/facebook.svg %}

文档说:

  

...包含特别是与标签所在的文件相关   正在使用。例如,如果_posts / 2014-09-03-my-file.markdown使用   include_relative标记,包含的文件必须在_posts中   目录或其子目录之一。

不幸的是,您无法使用..运算符,即移出_posts。对我来说这是一个严重的缺点。但如果你在布局中使用它,它可能适合你。

Here are the docs