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:
- Benutzer-Uploads wie Avatare werden nach der Einrichtung von
DISCOURSE_CDN_URLebenfalls über das CDN bereitgestellt. Allerdings scheint es keine gute Lösung zu sein, hochgeladene Assets nach jedem Upload erneut auf GitHub zu pushen. - Wenn Discourse nach einem Benutzer-Avatar wie
2_2.pngfragt, 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 namens2_2.pnggibt.
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.