2013-05-13 28 views
11

ジキルを使用してファイルの存在をテストするにはどうすればよいですか?ジキルを使用してファイルの存在を確認します

明確にするために、{% if %}文を実行して、イメージファイルが現在のページと同じ名前で存在するかどうかを確認したいと思います。 YAML前付の私のページで

:私のレイアウトでは

---- 
    reference-design: true 
---- 

{% 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 %} 

答えて

16

ジキル2以降、すべてのサイトファイルはsite.static_filesで利用できます。これを使用して、ファイルが存在するかどうかを確認することができます。例えば:

{% for static_file in site.static_files %} 
    {% if static_file.path == '/favicon.ico' %} 
     {% assign favicon = true %} 
    {% endif %} 
{% endfor %} 
+2

信じられないほど非効率的です。 – KFunk

+0

@KFunkなぜですか?ファイルの存在を確認するにはI/Oが必要で、非常に静的なファイルがたくさんあるまで、これよりも遅くなる可能性があります。また、それが唯一の解決策ならば、私はそれをとるだろう。 – autra

+5

@KFunkおそらく、パフォーマンスはJekyllにとって大きな懸念事項ではありません。最終的には静かな古い静的HTMLが生成されます。ビルドプロセスに数秒かかる場合、私は正直に気にしません。 – Jonathan

関連する問題