# So sammeln Sie alle von Discourse verwendeten statischen Assets (js, css)

**URL:** <https://meta.discourse.org/t/how-to-collect-all-static-assets-js-css-used-by-discourse/149319>\
**Category:** Support\
**Created:** [26. April 2020 um 08:09 UTC](https://meta.discourse.org/t/how-to-collect-all-static-assets-js-css-used-by-discourse/149319 "2020-04-26T08:09:29Z")\
**Posts on this page:** 1\
**Showing post:** 4

<div class="post-metadata">

**Author:** ![schleifer](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/schleifer/32/86416_2.png) [@schleifer](https://meta.discourse.org/u/schleifer)\
**Post date:** [27. April 2020 um 12:18 UTC](https://meta.discourse.org/t/how-to-collect-all-static-assets-js-css-used-by-discourse/149319/4 "2020-04-27T12:18:58Z")

</div>

> [@Windsooon](#):
>
> Wo finde ich die Dokumentation für Hooks wie `after_assets_precompile`?

Das ist eine gute Frage, aber ich habe keine gute Antwort dafür.

Das im Container verwendete Konfigurationssystem ist:

> **[GitHub - discourse/pups: Simple yaml based bootstrapper for Linux machines](https://github.com/discourse/pups)**
>
> Simple yaml based bootstrapper for Linux machines

Das README dort beschreibt allgemein, wie Hooks funktionieren. Die spezifisch verfügbaren Hooks hängen davon ab, wie Ihre Instanz eingerichtet ist – die Hauptdatei `app.yml` enthält eine oder mehrere Vorlagen. In den meisten Fällen ist eine davon `web.template.yml`:

> <https://github.com/discourse/discourse_docker/blob/master/templates/web.template.yml>

Dort ist der Hook `assets_precompile` definiert (zum Zeitpunkt dieses Schreibens auf Zeile 159). Gemäß der Pups-Dokumentation können Sie mit `before_assets_precompile` bzw. `after_assets_precompile` andere Befehle vor oder nach dem Abschluss ausführen.

> [@Windsooon](#):
>
> Pseudocode würde so aussehen

Die Befehle werden innerhalb des Docker-Containers ausgeführt, sodass Sie dafür nichts weiter tun müssen.

Die Direktive `cd:` kann direkt auf `/var/www/discourse/public/assets/` zeigen, und jede Zeile in `cmd` wird aus diesem Verzeichnis ausgeführt. (Warnung: Jede Zeile in einem `cmd`-Array wird in einer separaten Shell ausgeführt, ähnlich wie in einer Makefile).

Ich bin mir nicht sicher, ob der Inhalt von `/var/www/discourse/public/assets/` zwischen den Builds erhalten bleibt. Möglicherweise müssen Sie daher jedes Mal ein lokales Git-Repository erstellen und einen Force-Push durchführen. Die „korrektere“ Lösung könnte darin bestehen, in `app.yml` ein Docker-Volume für das Assets-Verzeichnis zu definieren, das auf einem in `app.yml` definierten Docker-Volume basiert [wie die anderen](https://github.com/discourse/discourse_docker/blob/master/samples/standalone.yml#L76) und außerhalb des Containers persistent bleibt.

---

_[View the full topic](https://meta.discourse.org/t/how-to-collect-all-static-assets-js-css-used-by-discourse/149319)._
