ページ /posts を表示しても、ブラウザに表示されるように報告されていません。例: Discourse Meta
https://meta.discourse.org/posts1 にアクセスした場合のように、常にアプリケーションエラーページが表示されるべきです。
ページ /posts を表示しても、ブラウザに表示されるように報告されていません。例: Discourse Meta
リンクをたどるとエラーページが表示されます。特定のブラウザで発生しますか?
Chrome、Firefox、Safariのプライベートモードでリンクをテストしました。
リンクをクリックすると、「oops!」ページも表示されます。しかし、そのページを更新したり、新しいタブにURLを入力したりすると、うまくいきません。
406エラーが返されているようです。Emberアプリでは404エラーとして扱われますが、ブラウザをリロードすると異なるレポートになります。
いずれにしてもエラーであり、UXにそのURLへのリンクはないため、なぜ問題なのかは不明です。
質問を修正してください。Discourse Meta を存在しないページとして扱うと、なぜ 406 と空のページが返されるのでしょうか。404 と「おっと」メッセージの方が合理的です。
Chrome 開発者ツールのネットワークタブで 406 レスポンスコードを確認しました。「おっと」ページはごくまれに表示されます。「おっと」ページを表示するのは合理的です。
私の質問は、どのようなエラーであっても、アプリケーションが空白のページではなく、ユーザーフレンドリーなエラーメッセージ(「おっと」ページが表示するもののような)を提示する責任があるということです。406 レスポンスの場合、アプリケーションには到達しないと推測されます。これは、Web サーバーまたはプロキシ サーバーである可能性のあるアプリケーションの前面にあるサービスによって報告されたエラーです。
問題となっているリンクはアプリケーションが生成したものですか?
discourse/config/routes.rb at main · discourse/discourse · GitHub を見ると、有効なルートではないようです。
無効なルートから開始した場合、Rails は間違った URL を伝えるために、Ember アプリケーション全体を送信しません。
間違っていました。https://meta.discourse.org/bananas は oops ページを読み込みます。/posts/:id/xxx が有効なルートであるためだと思います。
はい。それが、残りのパラメータを削除した後にこのベア /posts URL にたどり着いた方法です(ただし、/posts/:id/xxx ページをどこで見たのかはもう覚えていません)。/posts がユーザーのすべての投稿に対する有効なルートであると考えていました。これは Discourse がカバーしていないエッジケースかもしれません。
/posts はすべての投稿を返すことを期待していますが、システム上のすべての投稿を返すのはあまり役に立ちません。自分の投稿は https://meta.discourse.org/my/activity で見つけることができます。
ある程度同意します。/posts が空のページを返すのは Discourse のバグですか?これはあるべき姿なのか疑問に思っていますが、この問題が修正されなければならないと主張するつもりはありません。おそらく Discourse チームによるさらなる議論に値するでしょう。![]()
これは pr-welcome としてマークしますが、有効ではありますが、優先度は非常に低いです。