GET /posts/ 请求收到纯 HTTP 错误

访问页面 /posts 时似乎没有报告此问题,浏览器显示。例如 Discourse Meta


而它应该始终给出应用程序错误页面,就像您访问 https://meta.discourse.org/posts1 时一样

1 个赞

当我点击您的第一个链接时,我看到一个错误页面。这是特定浏览器才会出现的问题吗?

在 Chrome、Firefox 和 Safari 的隐私模式中测试了该链接。

当我点击链接时,我也会看到“哎呀!”页面。但是当我刷新该页面或在新标签页中输入网址时,它就不起作用了。

它似乎返回了 406 错误。Ember 应用将其视为 404,但如果您重新加载浏览器,它会以不同的方式报告。

无论哪种情况,这都是一个错误,并且用户界面中没有指向该 URL 的链接,因此不清楚为什么会出现此问题。

修改我的问题 - 为什么如果 Discourse Meta 被视为一个不存在的页面,它会返回 406 和一个空白页面。404 和一个 Oops 消息更合理。

我在 Chrome 开发者工具的网络选项卡中看到了 406 响应代码。我偶尔会看到一个 Oops 页面。显示 Oops 页面是合理的。
我的问题是,无论出现什么错误,应用程序都有责任显示用户友好的错误消息(就像 Oops 页面那样),而不是空白页面。我猜在 406 响应的情况下,应用程序甚至没有被访问到。这是由应用程序前面的服务报告的错误,可能是 Web 服务器或代理服务器。

该应用程序是否生成了您遇到问题的链接?

查看 discourse/config/routes.rb at main · discourse/discourse · GitHub

如果您从一个无效路由开始,Rails 不会发送整个 ember 应用程序来告诉您 URL 有误。

看起来我错了,https://meta.discourse.org/bananas 会加载 oops 页面。我猜这是因为 /posts/:id/xxx 是一个有效路由。

是的。这就是我在删除其余参数后得到这个裸露的 /posts URL 的方式(但我现在不记得我在哪里看到过 /posts/:id/xxx 页面了)。我曾认为 /posts 是用户所有帖子的有效路由。这可能是 Discourse 没有涵盖的一个边缘情况。

1 个赞

我期望 /posts 返回所有帖子,但返回系统上的所有帖子几乎没有用。您可以在 https://meta.discourse.org/my/activity 找到您的帖子。

1 个赞

在某种程度上同意这一点。返回空的 /posts 页面是 Discourse 的一个 bug 吗?我只是好奇这是否应该是这样,但我并不坚持这个问题是否必须修复。也许值得 Discourse 团队进一步讨论。 :slight_smile:

将此标记为 pr-welcome,虽然有效,但优先级非常低。

5 个赞