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

Vielen Dank. Ich habe auch festgestellt, dass einige statische Assets (wie CSS) in /var/www/discourse/tmp/stylesheet-cache abgelegt werden. Es gibt jedoch noch zwei weitere Probleme:

  1. Benutzer-Uploads wie Avatare werden nach der Einrichtung von DISCOURSE_CDN_URL ebenfalls über das CDN bereitgestellt. Allerdings scheint es keine gute Lösung zu sein, hochgeladene Assets nach jedem Upload erneut auf GitHub zu pushen.
  2. Wenn Discourse nach einem Benutzer-Avatar wie 2_2.png fragt, führt es folgende Schritte aus: 1) Es wird der Dateiname aufgeteilt, 2) einige Prüfungen durchgeführt, 3) und der tatsächliche Dateiname mittels Hashing berechnet. Wenn ich Benutzer-Avatare bereitstellen möchte, muss ich diese Logik selbst implementieren, da es keine Datei namens 2_2.png gibt.

Meine endgültige Lösung ist einfach: 1) Ich schalte Nginx vor mein Forum, wie in diesem Beitrag beschrieben. 2) Ich sammle alle statischen Assets aus dem oben genannten Pfad und pushe sie auf GitHub. 3) In der Nginx-Konfigurationsdatei füge ich folgende Regeln hinzu:

location ~/(stylesheets|assets) {
    return 301 https://cdn.jsdelivr.net/gh/my_github/my_repo/$request_uri;
}

Nochmals vielen Dank, @schleifer.