アプリで404ページにコントロールが表示されない

DiscourseHub アプリで削除されたトピック(例えば通知をクリックするなど)にアクセスしようとすると、当然ながら 404 ページが表示されます。404 ページでは一部の機能が無効化されています。例えば、ログイン状態を確認することができません。これはおそらくサーバー負荷を減らすための措置でしょう。理にかなっています。

しかし、問題なのはページ下部のコントロールも表示されないことです。404 ページにいるからといって、なぜ前方や後方への移動ができなかったり、別の Discourse インスタンスに切り替えられなかったりする必要があるのでしょうか?

バックボタンとフォワードボタンは私には表示されますが、下にスクロールするとポップアップします。私の表示例をご覧ください:

また、リンクのいずれかをクリックして別のトピックにアクセスし、そこから移動することもできます。ただし、これは理想的ではありません。

非常に奇妙ですね。報告する前に二度試しました。メタでです。表示させる唯一の方法は、あなたが提案したように、別のリンクをクリックすることでした。

編集:ちょっと待ってください。404 ページは管理者に対して異なる動作をするのでしょうか?プロフィール写真がそのスクリーンショットに表示されているのに対し、404 ページから移動するまで自分がログインしていることにすら気づかなかったのです。

確実なことは言えませんが、どのような表示が見えているのかスクリーンショットを共有してもらえますか?

こちらです

これは、ページのコンテンツの高さがビューポートの高さに近い場合に発生する可能性があります。404 ページで上下にスワイプすると、下部のコントロールが表示され始めますか?

ここで行えることはあまりないと思いますが、さらにこれは極めて稀なユースケース(例えば、プッシュ通知から 404 ページに遷移するなど)であるはずです。

いいえ、表示されません。その仕組みは理解しています。

削除されたトピックにクリックして移動することは、私にとってそれほど珍しくありません。そのような状況に何度も遭遇したおかげで、いつ発生するか、具体的に何が起きるのか、そしてその状態からどう脱出するかを把握しています。(通常はアプリを強制終了して脱出します。これが最初に発見した解決策だったためです。)とはいえ、これは確かにエッジケースです。

あのコントロールがどこで生成されているかはわかりません。Discourse 本体ではなく、アプリ側で生成されていると推測していました。もしそうだとすれば、表示されているページによって必要なナビゲーションコントロールが突然表示されなくなるのは、私には奇妙に思えます。修正する価値があるかどうかは皆様にお任せします。ただ、発生すると何が起きているのかを理解するまで少し時間がかかることは確かです。(上下にスクロールしてコントロールの表示を待っても、一向に出てこない。そこで以前はアプリが動作していないと思い込んで強制終了していました。)ついにその原因を特定できたので、報告することにしました。

では。

それらはアプリではなく、Discourse 側で生成されています。その機能を実装する際、両方のアプローチを試しましたが、Discourse 側で実装する方がはるかにスムーズな体験となりました。

私はこの画面に出くわしたことはありませんが、ユーザーによって Discourse の使い方が異なるため、他の人にとってはよくあること(そしてフラストレーションを招く経験)になり得ると理解しています。あなたが推測している通り、404 に対して簡易的な静的ページが提供されているのだと思います。また、静的ページにはアプリの下部コントロールが含まれていないため、スクロールしても何の反応もないのだと確信しています。コントロールを静的ページに追加する簡単な修正が可能か調査します(正直なところ、そう簡単ではないと予想しています)。

興味深いですね。

参考までに、よくある質問(FAQ)ページを確認しましたが、これは「静的ページ」だと思っていたのですが、コントロールはまだ表示されています。

いいえ、FAQ は引き続き Ember アプリの一部です。上記の「静的ページ」とは、Ember アプリを全く読み込まないページを指しています。そのようなページはあまりありません。

いくつか簡単なテストを実行しましたが、手動でブラウザに不正な URL を入力した場合にのみ、Ember ではない 404 ページに到達できました。Discourse 内のリンクで 404 を指すものをクリックすると、レンダリングされたページは Ember から提供されるため、DiscourseHub には下部にナビゲーションコントロールが含まれます。これは、存在しない URL へのリンクを自分自身に PM として送信してテストしました。

Ember ではない 404 ページにコントロールを追加するのは簡単ではありません。そのコードは Ember とデバイス検出に依存しているため、単純にコピー&ペーストすることはできません。

この 404 に遭遇した際、ロゴをクリックしてみてください。そうすれば Ember アプリ側のページに移動でき、それ以降はすべて正常に動作するはずです。

そう、今はそれをやってます。(強制終了する前に覚えていればね、笑)

それと、説明ありがとう。