Développement sur la version mobile de Discourse

J’ai une installation de développement locale de Discourse qui fonctionne sur ma machine Ubuntu. J’ai la version principale de développement opérationnelle en suivant le guide d’installation locale. Compte tenu du nouvel ajout d’ember-cli, je l’ai également fait fonctionner, en proxy vers l’application Rails. Je peux interagir pleinement avec la version de bureau de l’application.

Cependant, lorsque j’utilise les outils de développement de Chrome pour afficher la version mobile, les choses ne fonctionnent pas. J’obtiens simplement une page vierge avec une réponse “200 OK”, mais absolument aucun contenu. C’est juste entièrement vierge.

Je peux voir via les journaux Rails qu’il rend quelque chose, mais il ne semble pas être proxy par 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 ne journalise rien concernant la requête.

Vraisemblablement, j’ai mal configuré quelque chose et une erreur se produit quelque part, mais je n’arrive pas à trouver où ni comment faire apparaître l’erreur. Existe-t-il des indicateurs ou des variables d’environnement supplémentaires que je peux définir pour obtenir une journalisation plus détaillée sur ce problème ? J’ai essayé de définir DEBUG=ember-cli:* comme suggéré ici mais cela n’a rien enregistré concernant la requête.

Toute aide concernant ce problème serait grandement appréciée ! Longue date utilisateur de Discourse, merci de l’avoir développé !

2 « J'aime »

Des erreurs javascript dans la console du navigateur ?

1 « J'aime »

Malheureusement non. La seule chose qui s’affiche dans la console est ceci (en rouge) :

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

La réponse est, étrangement, entièrement vide.

Des idées sur la façon d’activer une journalisation plus détaillée pour Ember CLI ou Discourse lui-même ? Si je pouvais simplement voir quelle est l’erreur, je pourrais probablement résoudre le problème. Je ne vois aucune erreur pour une raison quelconque. Des idées ?

Après avoir un peu fouillé dans le code source, j’ai trouvé deux variables d’environnement qui aident :

  • PRINT_EXCEPTIONS - affiche toutes les exceptions, peut-être trop verbeux pour être utile, mais cela a aidé
  • RAILS_LOGS_STDOUT - enregistre tout dans la console, ce que je cherchais ci-dessus

Celles-ci ont confirmé qu’il n’y avait pas d’erreur dans Rails ni dans le SCSS de mon thème.

Apparemment, il y avait un composant gzip coincé entre Ember et Rails. Je ne suis pas sûr de la façon dont il est arrivé là, mais lorsque l’en-tête Content-Encoding existait, cette ligne particulière copiait cela et faisait en sorte que le navigateur (et curl) ignore le corps entier de la réponse (probablement parce qu’il n’était plus encodé en gzip).

Il semble que cela ait été corrigé dans la version 2.9.0.beta1, mais j’utilise la version 2.7.13.

La suppression du composant gzip en développement a résolu le problème pour ma version particulière, mais il semble que cela fonctionnera bien avec gzip à l’avenir. Je ne suis pas sûr pourquoi la version de bureau n’a pas présenté le même problème.

J’espère que cela aidera quiconque rencontre des problèmes similaires.

3 « J'aime »