Desarrollo en la versión móvil de Discourse

Tengo una instalación de desarrollo local de Discourse ejecutándose en mi máquina Ubuntu. Tengo la versión principal de desarrollo funcionando perfectamente siguiendo la guía de instalación local. Dada la nueva adición de ember-cli, también la tengo en funcionamiento, reenviando a la aplicación Rails. Puedo interactuar completamente con la versión de escritorio de la aplicación.

Sin embargo, cuando uso las Herramientas para desarrolladores de Chrome para ver la versión móvil, las cosas no funcionan. Simplemente obtengo una página en blanco con una respuesta “200 OK”, pero absolutamente ningún contenido. Está completamente en blanco.

Puedo ver a través de los registros de Rails que está renderizando algo, pero no parece ser reenviado a través de 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 no está registrando nada sobre la solicitud.

Presumiblemente he configurado algo mal y está arrojando un error en algún lugar, pero simplemente no puedo averiguar dónde o cómo hacer que el error se muestre. ¿Hay alguna bandera o variable de entorno adicional que pueda configurar para obtener un registro más detallado sobre este problema? He intentado configurar DEBUG=ember-cli:* como se sugiere aquí pero esto no registró nada sobre la solicitud.

¡Cualquier ayuda con este problema sería muy apreciada! ¡Usuario de Discourse desde hace mucho tiempo, gracias por desarrollarlo!

2 Me gusta

¿Hay algún error de javascript en la consola del navegador?

1 me gusta

Lamentablemente no. Lo único que aparece en la consola es esto (en rojo):

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

La respuesta es, extrañamente, completamente vacía.

¿Alguna idea sobre cómo habilitar un registro más detallado para Ember CLI o para Discourse? Si pudiera ver cuál es el error, probablemente podría resolver el problema. Simplemente no puedo ver ningún error por alguna razón. ¿Alguna idea?

Después de investigar un poco en el código fuente, encontré dos variables de entorno que ayudan:

  • PRINT_EXCEPTIONS - muestra todas las excepciones, quizás demasiado ruidoso para ser valioso, pero ayudó.
  • RAILS_LOGS_STDOUT - registra todo en la consola, que es lo que estaba buscando anteriormente.

Estos ayudaron a confirmar que no ocurría ningún error dentro de Rails ni en el SCSS de mi tema.

Aparentemente, había algún componente gzip atascado entre Ember y Rails. No estoy seguro de cómo llegó allí, pero cuando la cabecera Content-Encoding existía, esta línea en particular la copiaba y hacía que el navegador (y curl) ignoraran todo el cuerpo de la respuesta (presumiblemente porque ya no estaba codificado en gzip).

Parece que esto se ha corregido en la versión 2.9.0.beta1, pero estoy usando la versión 2.7.13.

Eliminar el componente gzip en desarrollo solucionó el problema para mi versión en particular, pero parece que funcionará bien con gzip en el futuro. No estoy seguro de por qué la versión de escritorio no mostró el mismo problema.

Espero que esto ayude a cualquier otra persona que enfrente problemas similares.

3 Me gusta