Jekyll:如何从集合中包含特定文件?
Jekyll: How to include specific file from collection?
我有一组 css 个文件,我用 Jekyll 将它们合并到一个文件中。这很简单:
{% for file in site.css %}
{{ file }}
{% endfor %}
但是,有一种特殊情况,我只想包含这些文件中的一个。 pages.css
文件。
site.css
是一个集合,所以我只是将所有 css 文件放在一个名为 _css
的文件夹中,并在 _config.yml
中添加:
collections:
css:
output: false
我使用 {{ site.css | where:"title", "Pages" | first }}
只能包含 _css/pages.css
个文件。但我想知道是否有更好的方法来做到这一点。像 {{ site.css/pages.css }}
有没有办法做到这一点?没有 where
和 first
子句?
对于例外情况,我会使用 if 语句而不是遍历文件。
但是,我会在使用此解决方案时考虑缓存。如果一个页面使用 'superlargecombined.css' 而另一个页面使用 'superlargecombinedcsswithoutonepart.css' 客户端需要下载它们(完全)。那不是优化。如果您将 css 文件分开,它们可以被缓存并且将被下载一次,独立于您的页面 css 配置。将始终需要粘在一起的东西组合在一起是一个很好的解决方案(以最小化请求),但请注意,使用 HTTP2 时,最小化请求的需求将大大减少。
希望对您有所帮助!
我有一组 css 个文件,我用 Jekyll 将它们合并到一个文件中。这很简单:
{% for file in site.css %}
{{ file }}
{% endfor %}
但是,有一种特殊情况,我只想包含这些文件中的一个。 pages.css
文件。
site.css
是一个集合,所以我只是将所有 css 文件放在一个名为 _css
的文件夹中,并在 _config.yml
中添加:
collections:
css:
output: false
我使用 {{ site.css | where:"title", "Pages" | first }}
只能包含 _css/pages.css
个文件。但我想知道是否有更好的方法来做到这一点。像 {{ site.css/pages.css }}
有没有办法做到这一点?没有 where
和 first
子句?
对于例外情况,我会使用 if 语句而不是遍历文件。
但是,我会在使用此解决方案时考虑缓存。如果一个页面使用 'superlargecombined.css' 而另一个页面使用 'superlargecombinedcsswithoutonepart.css' 客户端需要下载它们(完全)。那不是优化。如果您将 css 文件分开,它们可以被缓存并且将被下载一次,独立于您的页面 css 配置。将始终需要粘在一起的东西组合在一起是一个很好的解决方案(以最小化请求),但请注意,使用 HTTP2 时,最小化请求的需求将大大减少。
希望对您有所帮助!