Warum ändert das Hinzufügen von ENV keine Client-seitigen Site-Einstellungen?

Hallo @sam,

Vielleicht verstehe ich das falsch oder mache es falsch?

In app.yml habe ich eine benutzerdefinierte Umgebungsvariable hinzugefügt:

env:
   DISCOURSE_MY_ENV_TEST:  app

und den Container mit einem kleinen benutzerdefinierten Plugin neu erstellt, in dem ich alle Site-Einstellungen so ausgegeben habe:

console.log(Discourse.SiteSettings);

Wie erwartet werden alle Site-Einstellungen ordnungsgemäß in der Konsole ausgegeben; aber die benutzerdefinierte env:-Variable, die ich in app.yml gesetzt habe, scheint nicht in den Site-Einstellungen anzukommen, wie ich erwartet hatte.

Mache ich das falsch?

Der Grund für meine Frage war, dass ich dieses Thema gefunden habe, während ich nach einer einfachen Möglichkeit suchte, Umgebungsvariablen in die Anwendung zu bekommen, damit ich sie in meinem Plugin verwenden kann. Ich dachte, du würdest sagen, dass wir das tun können, indem wir sie wie beschrieben zur Datei app.yml hinzufügen; aber es funktioniert nicht wie erwartet.

PS: Entschuldige bitte, dass ich dieses alte Thema wiederbelebe, aber es schien die beste Übereinstimmung basierend auf der Suche auf der Seite zu sein, und ich dachte, es wäre besser, hier zu antworten, als ein neues Thema zu eröffnen.

Damit dies funktioniert, müssen Sie ein Plugin mit der entsprechenden Site-Einstellung definieren. Wir übergeben Daten nicht einfach blind von ENV an den Client.

Hallo Sam,

Ich glaube, ich habe es verstanden:

Grundsätzlich können wir also keine neue Umgebungsvariable im yml-File definieren und diese env:-Variable von den Site-Einstellungen in der App nutzen lassen, es sei denn, wir erstellen dafür ein Plugin (um eine zusätzliche Umgebungsvariable für die Site hinzuzufügen, die im yml-File konfigurierbar ist).

Ist das meine korrekte Auffassung?

Vielen Dank!

Ja, wenn Sie eine neue Seiteneinstellung definieren möchten, muss diese zu einem Plugin hinzugefügt werden.