2015-05-05 12 views
11

Wir haben eine Website, die lokal mit Jekyll und Jekyll-Assets (die Kettenräder verwendet) erstellt.generieren eine app.cache mit Jekyll

Wir möchten in der Lage sein, ein Cache-Manifest zu generieren, das alle Dateien enthält, die in die resultierende Site eingehen. Wir möchten dies als Teil des Build-Prozesses generieren, damit die gesamte Website offline verfügbar ist. (Es ist eine sehr kleine Site, aber wir sind gegen manuelle Arbeit!)

Die Bilder und die CSS haben einen Hash an den Dateinamen während der Erstellung angehängt, so dass wir das Ergebnis nicht vorhersagen können.

Wir haben versucht, die {% asset_path logo.png %} etc. Methode zu verwenden, aber es wird nicht verarbeitet. I.e. Es hinterlässt das Liquid-Tag wie in der endgültigen Datei. ERB funktioniert arbeiten (<%= 2+3 %> gibt 5), aber wir können keine Möglichkeit für den Zugriff auf die resultierenden Dateien sehen.

Wir überlegen uns einen anderen Task-Runner, um das Ganze zu wickeln, aber das fühlt sich an wie Overkill.

+0

Können Sie den Inhalt Ihrer Seite mit der Flüssigkeit posten, die nicht funktioniert hat? – bwest

Antwort

7

jekyll-perf erstellt eine manifest.appcache Datei. Das Projekt scheint so zu sein, als ob es schlummern könnte, aber sie taten es wie folgt. Hoffentlich ist das ein nützlicher Ausgangspunkt. Sie müssen natürlich Dinge für Ihre Asset-Pfade etc. anpassen.

(Ich bin nicht sicher, ob die for Sachen in dieser Pflege Ihrer angehängten Hash-Ausgabe nehmen oder nicht. Entschuldigt, wenn dies ist genau das, was Sie bereits versucht haben und es für Sie nicht funktioniert hat.)

--- 
--- 
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

vergessen Sie nicht:

  • Die leere Titelei in Ihrem Manifest

    --- 
    # empty front matter 
    --- 
    [...] 
    
  • Um Ihre Sammlungen zu durchlaufen, wenn Sie sie ausgeben.

Verwandte Themen