访问页面 /posts 时似乎没有报告此问题,浏览器显示。例如 Discourse Meta
而它应该始终给出应用程序错误页面,就像您访问 https://meta.discourse.org/posts1 时一样
访问页面 /posts 时似乎没有报告此问题,浏览器显示。例如 Discourse Meta
当我点击您的第一个链接时,我看到一个错误页面。这是特定浏览器才会出现的问题吗?
在 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 没有涵盖的一个边缘情况。
我期望 /posts 返回所有帖子,但返回系统上的所有帖子几乎没有用。您可以在 https://meta.discourse.org/my/activity 找到您的帖子。
在某种程度上同意这一点。返回空的 /posts 页面是 Discourse 的一个 bug 吗?我只是好奇这是否应该是这样,但我并不坚持这个问题是否必须修复。也许值得 Discourse 团队进一步讨论。 ![]()
将此标记为 pr-welcome,虽然有效,但优先级非常低。