Ciao,
Ho voluto provare Discourse su un’installazione locale di Ghost.
In pratica ho configurato tutto nel modo più semplice possibile; ho seguito la “Guida per principianti per installare Discourse per lo sviluppo usando Docker” e ho impostato Ghost usando la sua CLI.
Ghost è in esecuzione su localhost:2368, Discourse su localhost:9292
Ho aggiunto localhost:2368 agli host consentiti in Personalizza/Incorporamento (senza impostazioni come nome di classe, whitelist dei percorsi o pubblicazione in una categoria).
Dopo aver aggiunto il frammento di codice (e ovviamente sostituendo correttamente i segnaposto) ho un incorporamento di Discourse che dice “Caricamento discussione…” - ma dopo pochi secondi registra un errore nella console
Errore nell’esecuzione di ‘postMessage’ su ‘DOMWindow’: l’origine target fornita (‘http://localhost:9292’) non corrisponde all’origine della finestra di destinazione (‘http://localhost:2368’).
Ricevi quell’errore se l’iframe non è stato caricato.
Quando hai aggiunto localhost:2368 agli host consentiti, prova sia con che senza una barra alla fine, così come con i caratteri jolly.
Quello che sta accadendo è che potrebbe caricare la pagina, ma nessun contenuto che fa riferimento a risorse esterne, causando questo malfunzionamento nel caricamento.
Tuttavia, ero davvero interessato a provare Ghost a breve. Quindi seguirò questo argomento e spero che questo sia l’unico problema che riscontri.
Istanza di produzione? Ho seguito la guida per installare Discourse in locale per lo sviluppo – non dovrebbe questa essere l’installazione corretta per l’uso in locale? L’installazione funziona perfettamente, sono solo i problemi di embedding a causare difficoltà.
Ho provato ad aggiungere due proxy nginx, uno per Ghost e uno per Discourse, in esecuzione su ghost.localhost e discourse.localhost. Dopo aver modificato tutti gli URL per puntare ai proxy, l’errore è diventato:
Impossibile eseguire ‘postMessage’ su ‘Window’: Origine di destinazione non valida ‘’ in una chiamata a ‘postMessage’.
Utilizzando http://localhost:9292/ per discourseUrl invece di http://discourse.localhost/, l’errore non si presenta più, ma i commenti rimangono bloccati in un ciclo infinito (“Caricamento discussioni” per sempre, con alcune richieste effettuate ogni pochi secondi).
Le configurazioni di nginx sono abbastanza semplici: