Hallo zusammen,
als ich versucht habe, Discourse-Kommentare per JavaScript einzubetten, habe ich folgende Fehler in der Browserkonsole erhalten:
1. Fehler aus Zeile 1 der Datei comments
Failed to load resource: the server responded with a status of 400 ()
2. Fehler aus der Datei embed-application-08a52625979d3d44aac8a2dedf5a1a662fec81ffe8a9ebc2e6eefb15b2980874.js
Uncaught DOMException: Failed to execute 'postMessage' on 'Window': Invalid target origin '' in a call to 'postMessage'.
at u (https://forum.MYDOMAINNAME.com/assets/embed-application-08a52625979d3d44aac8a2dedf5a1a662fec81ffe8a9ebc2e6eefb15b2980874.js:1:105)
at window.onload (https://forum.MYDOMAINNAME.com/assets/embed-application-08a52625979d3d44aac8a2dedf5a1a662fec81ffe8a9ebc2e6eefb15b2980874.js:1:523)
Aus diesen beiden Fehlern schließe ich, dass das Problem darin besteht, dass der Browser die Assets vom Server nicht finden kann.
Das könnte an meinem Setup liegen:
- Meine Hauptanwendung wird auf einer AWS EC2-Instanz gehostet. Alle statischen Dateien/Assets werden in einem AWS S3-Ordner gespeichert und von meiner App über AWS CloudFront abgerufen.
- Discourse habe ich auf einer anderen EC2-Instanz mit einem Docker-Image installiert.
- Über AWS Route 53 habe ich einen
A-Eintrag hinzugefügt, derforum.MYDOMAINNAME.comauf die IP-Adresse der Discourse-EC2-Instanz umleitet.
Ich habe das HTML- und JS-Skript in meine Hauptanwendung eingebettet. Wenn der Code nach den Assets sucht, tritt ein Fehler auf, da meine Hauptanwendung (auf einer anderen EC2-Instanz) die Discourse-Asset-Dateien nicht enthält.
Wenn meine Annahme stimmt: Wie sollte ich das beheben? Wie kann ich die Discourse-Assets in S3 speichern und über CloudFront ausliefern?
Wenn meine Annahme falsch ist: Was bedeuten diese Fehler und wie kann ich sie beheben?
Danke!