Sviluppo sulla versione mobile di Discourse

Ho un’installazione di sviluppo locale di Discourse in esecuzione sulla mia macchina Ubuntu. Ho la versione principale di sviluppo attiva e funzionante seguendo la guida all’installazione locale. Data la nuova aggiunta di ember-cli, l’ho fatto funzionare anche io, inoltrando alla Rails app. Sono in grado di interagire completamente con la versione desktop dell’app.

Tuttavia, quando uso Chrome DevTools per visualizzare la versione mobile, le cose non funzionano. Ottengo semplicemente una pagina bianca con una risposta “200 OK”, ma assolutamente nessun contenuto. È semplicemente completamente vuota.

Posso vedere tramite i log di Rails che sta renderizzando qualcosa, ma non sembra essere inoltrato tramite Ember.

Started GET "/" for <redacted> at 2022-01-31 22:51:03 +0000
  Rendering layout layouts/application.html.erb
  Rendering categories/index.html.erb within layouts/application
  Rendered categories/index.html.erb within layouts/application (Duration: 2.8ms | Allocations: 925)
  Rendered layouts/_head.html.erb (Duration: 1.6ms | Allocations: 273)
  Rendered common/_discourse_stylesheet.html.erb (Duration: 3.2ms | Allocations: 609)
  Rendered layouts/_head_tag.html.erb (Duration: 0.2ms | Allocations: 65)
  Rendered application/_header.html.erb (Duration: 2.5ms | Allocations: 824)
  Rendered layouts/_body_tag.html.erb (Duration: 0.1ms | Allocations: 21)
  Rendered layout layouts/application.html.erb (Duration: 22.6ms | Allocations: 4961)

ember-cli non sta registrando nulla sulla richiesta.

Presumibilmente ho configurato male qualcosa e sta generando un errore da qualche parte, ma non riesco a capire dove o come far apparire l’errore. Ci sono flag aggiuntivi o variabili d’ambiente che posso impostare per ottenere un logging più dettagliato su questo problema? Ho provato a impostare DEBUG=ember-cli:* come suggerito qui ma questo non ha registrato nulla sulla richiesta.

Qualsiasi aiuto riguardo a questo problema sarebbe molto apprezzato! Utente di lunga data di Discourse, grazie per averlo sviluppato!

2 Mi Piace

Ci sono errori javascript nella console del browser?

1 Mi Piace

Purtroppo no. L’unica cosa che viene visualizzata nella console è questa (in rosso):

GET http://localhost:4200/ 200 (OK)

La risposta è, stranamente, completamente vuota.

Avete qualche idea su come abilitare un logging più dettagliato per Ember CLI o per Discourse stesso? Se potessi semplicemente vedere qual è l’errore, probabilmente potrei risolvere qualsiasi problema. Semplicemente non riesco a vedere alcun errore per qualche motivo. Avete qualche idea?

Dopo aver esaminato il codice sorgente, ho trovato due variabili d’ambiente che aiutano:

  • PRINT_EXCEPTIONS - mostra tutte le eccezioni, forse troppo prolisso per essere prezioso, ma ha aiutato
  • RAILS_LOGS_STDOUT - registra tutto sulla console, che è quello che stavo cercando sopra

Questi hanno aiutato a confermare che non si verificava alcun errore all’interno di Rails né nel SCSS del mio tema.

Apparentemente c’era un componente gzip bloccato tra Ember e Rails. Non sono sicuro di come sia arrivato qui, ma quando l’header Content-Encoding esiste, questa particolare riga lo copiava e causava al browser (e a curl) di ignorare l’intero corpo della risposta (presumibilmente perché non era più codificato in gzip).

Sembra che questo sia stato corretto in 2.9.0.beta1, ma sto eseguendo la versione 2.7.13.

Rimuovere il componente gzip in sviluppo ha risolto il problema per la mia versione particolare, ma sembra che in futuro funzionerà bene con gzip. Non sono sicuro del perché la versione desktop non abbia mostrato lo stesso problema.

Spero che questo aiuti chiunque altro abbia problemi simili.

3 Mi Piace