Entwicklung an der mobilen Version von Discourse

Ich habe eine lokale Entwicklungsumgebung von Discourse auf meinem Ubuntu-Rechner eingerichtet. Ich habe die Hauptentwicklungsversion gemäß der Anleitung für lokale Installationen zum Laufen gebracht. Angesichts der neuen Ergänzung von ember-cli habe ich auch diese zum Laufen gebracht und sie leitet an die Rails-Anwendung weiter. Ich kann vollständig mit der Desktop-Version der Anwendung interagieren.

Wenn ich jedoch die mobile Version mit den Chrome-Entwicklertools aufrufe, funktioniert nichts. Ich bekomme einfach eine leere Seite mit einer “200 OK”-Antwort, aber absolut keinem Inhalt. Sie ist einfach komplett leer.

Ich kann anhand der Rails-Protokolle sehen, dass etwas gerendert wird, aber es scheint nicht über Ember weitergeleitet zu werden.

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 protokolliert nichts über die Anfrage.

Vermutlich habe ich etwas falsch konfiguriert und es gibt irgendwo einen Fehler, aber ich kann einfach nicht herausfinden, wo oder wie ich den Fehler anzeigen lassen kann. Gibt es zusätzliche Flags oder Umgebungsvariablen, die ich setzen kann, um eine detailliertere Protokollierung für dieses Problem zu erhalten? Ich habe versucht, DEBUG=ember-cli:* zu setzen, wie hier vorgeschlagen, aber dies hat nichts über die Anfrage protokolliert.

Jede Hilfe bei diesem Problem wäre sehr willkommen! Langjähriger Benutzer von Discourse, danke für die Entwicklung!

2 „Gefällt mir“

Gibt es JavaScript-Fehler in der Browserkonsole?

1 „Gefällt mir“

Leider nein. Das Einzige, was in der Konsole angezeigt wird, ist dies (in Rot):

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

Die Antwort ist seltsamerweise komplett leer.

Haben Sie Ideen, wie man mehr detaillierte Protokollierung für Ember CLI oder Discourse selbst aktivieren kann? Wenn ich nur sehen könnte, was der Fehler ist, könnte ich wahrscheinlich das Problem beheben. Ich kann aus irgendeinem Grund keine Fehler sehen. Irgendwelche Ideen?

Nachdem ich den Quellcode durchsucht hatte, fand ich zwei Umgebungsvariablen, die helfen:\n\n* PRINT_EXCEPTIONS - zeigt alle Ausnahmen an, vielleicht zu gesprächig, um wertvoll zu sein, aber es hat geholfen\n* RAILS_LOGS_STDOUT - protokolliert alles auf der Konsole, was ich oben gesucht habe\n\nDiese halfen zu bestätigen, dass kein Fehler in Rails oder im SCSS meines Themes auftrat.\n\nAnscheinend gab es eine Gzip-Komponente, die zwischen Ember und Rails feststeckte. Ich bin mir nicht sicher, wie diese dorthin gelangt ist, aber wenn die Header Content-Encoding vorhanden waren, kopierte diese spezielle Zeile diese und veranlasste den Browser (und curl), den gesamten Antwortkörper zu ignorieren (vermutlich, weil er nicht mehr in Gzip kodiert war).\n\nEs sieht so aus, als ob dies in 2.9.0.beta1 behoben wurde, aber ich verwende 2.7.13.\n\nDas Entfernen der Gzip-Komponente in der Entwicklung hat das Problem für meine spezielle Version behoben, aber es sieht so aus, als ob es in Zukunft mit Gzip funktionieren wird. Ich bin mir nicht sicher, warum die Desktop-Version nicht das gleiche Problem aufwies.\n\nHoffentlich hilft dies anderen, die ähnliche Probleme haben.

3 „Gefällt mir“