Impossibile incorporare Discourse locale in un'istanza Ghost locale

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’).

Cosa mi sto perdendo?

Grazie!

2 Mi Piace

(Non un esperto o membro del team)

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

1 Mi Piace

Purtroppo finora non ho trovato una soluzione :frowning:

1 Mi Piace

Sembra che tu stia cercando di eseguire un’istanza di produzione su una porta non standard? Questa configurazione non è supportata in Discourse.

2 Mi Piace

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à.

1 Mi Piace

Penso che dovrai trovare un modo per testare questo utilizzando hostname reali e non le porte.

2 Mi Piace

Immagino che proverò a configurare un proxy con nginx, grazie.

1 Mi Piace

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:

server {
  listen 80;
  server_name discourse.localhost;

  access_log /var/log/nginx/discourse.localhost-access.log;
  error_log /var/log/nginx/discourse.localhost-error.log;
  
  location / {
    proxy_pass         http://127.0.0.1:9292;
    proxy_set_header   X-Forwarded-For $remote_addr;
    proxy_set_header   Host $http_host;
  }
}

Analogamente per ghost al posto di discourse nella configurazione di Ghost.