使用Jekyll检查文件是否存在

Wol*_*lfr 15 liquid jekyll

我如何使用Jekyll来测试文件的存在?

为了澄清,我想运行一个{% if %}语句来检查是否存在与我所在页面同名的图像文件.

在YAML前面的我的页面上:

----
  reference-design: true
----
Run Code Online (Sandbox Code Playgroud)

在我的布局中:

{% if page.reference-design %}
    {% assign filename = page.path | remove_first: '.html' %}
    <!-- How can I check if file actually exists? -->
    <img src="images/reference_designs/{{ filename }}.png">
{% endif %}
Run Code Online (Sandbox Code Playgroud)

Jon*_*han 21

从Jekyll 2开始,所有站点文件都可以通过site.static_files.您可以使用它来检查文件是否存在.例如:

{% for static_file in site.static_files %}
    {% if static_file.path == '/favicon.ico' %}
        {% assign favicon = true %}
    {% endif %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

  • @KFunk可能,但是Jekyll的性能并不是一个超级大的问题,因为你只进行一次编译阶段.它最终导致普通的旧静态HTML.如果我的构建过程需要几秒钟,我真的不在乎. (9认同)
  • 难以置信的低效率. (4认同)
  • @vossad01 的意思是,此方法不适用于任何包含前端内容的内容。引自 Jekyll 网站:“静态文件是不包含任何前端内容的文件。这些文件包括图像、PDF 和其他未渲染的内容。” OP想要搜索图像,所以使用这种方法是可以的。 (2认同)