Создать приложение. cache с Jekyll

У нас есть сайт, который строится локально с Jekyll и Jekyll-Assets (который использует звездочки).

Мы хотели бы иметь возможность генерировать манифест кэша, в котором есть все файлы, которые попадают в результирующий сайт. Мы хотели бы создать это как часть процесса сборки, чтобы весь сайт был доступен в автономном режиме. (Это очень маленький сайт, но мы против ручной работы!)

Изображения и css имеют хэш, добавленный к имени файла во время сборки, поэтому мы не можем предсказать результат.

Мы попытались использовать метод {% asset_path logo.png %} и т.д., но он не обрабатывается. То есть он оставляет тег Liquid, как в конечном файле. ERB работает (<%= 2+3 %> дает 5), но мы не можем видеть способ доступа к результирующим файлам.

Мы рассматриваем другую задачу, чтобы обернуть все это, но это кажется излишним.

Ответ 1

jekyll-perf создает файл manifest.appcache. Проект выглядит так, как будто он может быть бездействующим, но они делали это следующим образом. Надеюсь, это полезно в качестве отправной точки. Естественно, вам может понадобиться настроить вещи для ваших путей к ресурсам и т.д.

(Я не уверен, что материал for в этом случае позаботится о вашей добавленной проблеме с хешем или нет. Извините, если это именно то, что вы уже пробовали, и оно не сработало для вас.)

---
---
CACHE MANIFEST

# rev {{ site.buildtime }}

CACHE:
{% asset_path all.css %}
{% for page in site.pages %}{% if page.url != '/manifest.appcache' %}{{ page.url }}{% endif %}
{% endfor %}
{% for item in site.images %}{{ item.url }}
{% endfor %}
{% for item in site.scripts %}{{ item.url }}
{% endfor %}

NETWORK:
*
http://*
https://*

Ответ 2

Не забывайте:

  • Пустое переднее вещество в вашем манифесте

    ---
    # empty front matter
    ---
    [...]
    
  • Перебирать ваши коллекции, если вы их выводите.