Assets Theme einbetten

Oh, Mann :flushed_face: 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

:artist_palette: 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*`

:thinking: 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.conf hat das Caching standardmäßig aktiviert, unabhängig von der Umgebung
  • Dieses Caching ist nicht an RAILS_ENV gebunden, 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.

:turtle: 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.

:speech_balloon: Haben Sie ein besseres Entwicklungssetup oder schnelle Lösungen? Melden Sie sich!