Ich glaube, Sie müssen DISCOURSE_ENABLE_CORS: true in Ihrer app.yml (irgendwo im env-Abschnitt) festlegen.
Sollte die DISCOURSE_ENABLE_CORS-Variable nicht für Discourse gesetzt werden?
Ich bin mir nicht sicher, was Sie sagen, aber versuchen Sie bitte, das Empfohlene zu tun. Ich bin ziemlich sicher, dass Sie einfach ./launcher destroy app;./launcher start app anstelle eines vollständigen Rebuilds ausführen können.
Vielen Dank für Ihre Antwort. Entschuldigen Sie, dass meine vorherige Nachricht nicht klar genug war.
Ich verwende eine gehostete Discourse-Instanz und werde Discourse auf meiner Website einbetten. Als ich versuchte, das contentDoument-Objekt des iframes des eingebetteten Discourse zu erhalten, stieß ich auf die Cross-Origin-Beschränkung. Auf der Admin-Einstellungsseite bemerkte ich die Einstellung “cors origins”, wie im Bild des Themas gezeigt. Dann fügte ich meine Test-Origin-URL hinzu, aber es funktionierte nicht. Und ich bemerkte den Hinweis: Die Umgebungsvariable DISCOURSE_ENABLE_CORS muss auf true gesetzt sein, um CORS zu aktivieren. Ich kann jedoch nicht finden, wo DISCOURSE_ENABLE_CORS in den Admin-Einstellungen gesetzt werden kann.
Ich möchte wissen, wie DISCOURSE_ENABLE_CORS gesetzt wird, oder ob meine Cross-Domain-Konfiguration nicht funktioniert, ob sie mit dieser Einstellung zusammenhängt.
Einbettung ist nicht meine Stärke, aber ich glaube, Sie würden das unter /admin/customize/embedding einstellen, anstatt die Umgebungsvariable zu ändern?
Danke für deine Antwort. Ich habe es versucht, aber es hat nicht funktioniert.
Wenn Sie möchten, dass wir Ihnen helfen, müssen Sie detailliert erklären, was Sie versucht haben.
Das ist, was ich in /admin/customize/embedding konfiguriert habe, aber es nützt nichts für Cross-Origin.
Ich glaube nicht, dass du das kannst.
Es gibt eine versteckte Website-Einstellung, die das Einbetten eines iFrames ermöglicht, aber ich vermute, dass diese nicht für Standard- oder Business-Tarife verfügbar ist. Du kannst dich an deinen Support-Ansprechpartner wenden, um nachzufragen.
Das Einbetten von Discourse in einen iFrame wird nicht offiziell unterstützt.
iframe wird von einem offiziellen JS-Skript erstellt. Ich verwende die Codes, die unter /admin/customize/embedding bereitgestellt werden, wie unten gezeigt:
Ich muss die eingebetteten Teile an das Farbschema meiner Website anpassen, daher muss ich auf das iframe zugreifen, obwohl das iframe nicht von mir erstellt wurde.
@mikeguo, was ist die Plattform der Website, auf der Sie Ihre Discourse-Themen einbetten möchten?
Ist es zum Beispiel eine Wordpress-Website oder ein Ghost-Blog?
Bitte geben Sie eine URL zu einem Beitrag auf der Zielseite an.
Alles, was ich sehen kann, ist Folgendes (aus dem Screenshot des Codes in Ihrem Thema oben):
https://e53c-185-143-220-5.eu.ngrok.io/
Ich habe zum Beispiel die Umgebungsvariable ‘DISCOURSE_ENABLE_CORS’ wie in diesem Beitrag beschrieben verwendet, um Inhalte von meinem Discourse-Forum auf einer Seite meines Ghost-Blogs anzuzeigen…
Die Funktion, die Sie in dem obigen Code zu verwenden scheinen…
…scheint darauf hinzudeuten, dass Sie versuchen, Themen aus Ihrem Discourse-Forum ALS BEITRÄGE in Ihre externe Website einzubetten, was ein anderer Anwendungsfall ist.
Wir müssen besser erklären, was Sie hier versuchen zu tun…
Vielen Dank für Ihre detaillierte Erklärung.
https://algo.monster ist meine Website, auf der ich Discourse einbetten möchte. Genauer gesagt,
möchte ich Discourse in die Artikelseite einbetten, um Kommentare anzuzeigen und Cusdis, das ich derzeit verwende, zu ersetzen. Zum Beispiel,
der Artikel https://algo.monster/problems/math-basics und Kommentare:
Meine Website
https://algo.monster verwendet keine Blogging-Plattform, weder WordPress noch Ghost. Meine Website ist mit meinem eigenen Code implementiert und wird auf meinem eigenen Cloud-Server bereitgestellt.Mithilfe der auf
/admin/customize/embedding bereitgestellten Codes werden eingebettete Discourse-Instanzen korrekt angezeigt.Das Problem, das ich durch die Konfiguration von
DISCOURSE_ENABLE_CORS lösen möchte, ist folgendes:
Diese URL ist diejenige, die ich zum Testen verwende und die keine Cross-Origin-Probleme verursachen sollte.
Vielen Dank @mikeguo – was haben Sie in Ihren Skript-Snippet für die discourseEmbedUrl eingefügt, wo es heißt „REPLACE_ME“?
Um Links zu bestehenden Themen zu erstellen, anstatt automatisch Themen zu erstellen, habe ich den Parameter discourseEmbedUrl durch topicId ersetzt, wie unten gezeigt:
Vielen Dank nochmals, @mikeguo – bedauerlicherweise übersteigt dies nun meine Möglichkeiten, weiterzuhelfen … Ich hoffe, jemand anderes hier kann Rat geben …
Danke für deine Hilfe ![]()





