Oh, Mann
Es war Nginx!
TL;DR:
rm -rf /var/nginx/cache/*`
Sofortige Lösung!
Optional: Nginx Asset Caching deaktivieren
Bearbeiten Sie diese Datei:
/etc/nginx/conf.d/discourse.conf
Kommentieren Sie um die Zeilen 243-246 herum die Caching-Direktiven aus:
# proxy_cache one;
# proxy_cache_key "$scheme,$host,$request_uri";
# proxy_cache_valid 200 301 302 7d;
# proxy_cache_bypass $bypass_cache;
Starten Sie dann Nginx neu:
sv restart nginx
Wenn Sie Farbpaletten ändern…
Nur die Farbeinstellungen im Theme zu bearbeiten, generiert embed_[digest].css nicht neu. Um Discourse zu zwingen, neue Asset-Dateien zu generieren, tun Sie Folgendes:
rm tmp/stylesheet-cache/* # oder, nur für Embed, `rm tmp/stylesheet-cache/embed*`
Was ist mit RAILS_ENV=development?
Sie denken vielleicht, dass das Setzen von RAILS_ENV: development das Caching deaktiviert, aber:
- Die von Discourse verwendete
nginx.sample.confhat das Caching standardmäßig aktiviert, unabhängig von der Umgebung - Dieses Caching ist nicht an
RAILS_ENVgebunden, daher hilft es nicht beim Caching von eingebetteten Assets
Solange Sie also nicht die gesamte Nginx-Schicht neu konfigurieren möchten, leeren Sie einfach den Cache manuell oder deaktivieren Sie diese Zeilen, und Sie sind fertig. Sobald Sie bereit für die Produktion sind, können Sie zurückkehren.
Was ist mit ./launcher rebuild standalone?
Sicher, es funktioniert. Aber wenn Sie aktiv Themes bearbeiten, Embeds testen und Farben abstimmen… werden Sie etwas Schnelleres wollen, als jedes Mal ein paar Minuten zu warten.