2013-05-13 34 views
11

如何使用Jekyll測試文件的存在?使用Jekyll檢查文件的存在

爲了澄清,我想運行一個{% 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

從Jekyll 2開始,所有站點文件都可以通過site.static_files獲得。你可以用它來檢查一個文件是否存在。例如:

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

令人難以置信的低效率。 – KFunk 2017-05-16 23:59:44

+0

@KFunk爲什麼?檢查文件的存在涉及到I/O,並且可能比這慢得多,直到你有很多靜態文件。另外,如果它是唯一的解決方案,我會接受。 – autra 2017-07-28 14:50:04

+5

@KFunk可能吧,但是對於Jekyll而言,性能並不是一個超級大問題,因爲你只做一次編譯階段。它最終導致普通的舊靜態HTML。如果我的構建過程需要幾秒鐘,我真的不在乎。 – Jonathan 2017-08-01 13:57:26

相關問題