500 错误在移动端分类视图出现,由知识库插件导致

我刚刚上线了一个新的 Discourse 站点,但刚刚注意到(至少在手机端)无法访问分类列表。

目前无法确认桌面端是否也存在相同问题,因为我暂时不在电脑旁。

站点地址是 https://community.bcro.org,如需排查问题,可提供该链接。

经过进一步调查,这似乎仅与移动视图有关。

我在用手机视图打开您的网站时也遇到了同样的问题。即使使用 安全模式 打开网站,问题依然存在。

我在控制台中看到的错误是:

GET https://community.bcro.org/categories.json 500
Error while processing route: discovery.categories

在桌面视图中打开网站时,分类页面没有错误。

您可以通过访问 https://community.bcro.org/?mobile_view=1 在桌面端加载网站的手机视图。如果这样做并打开网站的错误日志页面(管理员 / 日志 / 错误日志),您应该会看到一条错误消息,其中包含更多关于问题原因的详细信息。要过滤日志,请在日志页面左下角取消选中“调试”、“信息”和“警告”复选框。

请告诉我们您在日志中发现了什么。

当我访问该网站时,我看到以下内容:

StandardError(尝试访问未预加载的自定义字段,为防止 N+1 查询,此操作被禁止)/var/www/discourse/app/models/concerns/has_custom_fields.rb:164:in `

以下是回溯信息:

这似乎表明问题出在 discourse-knowledge-base 插件上。您可以尝试从 app.yml 文件中移除该插件,重新构建应用,然后查看是否能解决问题。

我会试试……那可就太不幸了,因为之前明明刚刚还能用的……

感谢你的帮助 @simon。问题已经解决了。在可预见的未来,我将禁用此插件,并寻找新的替代方案。

插件问题很可能很容易解决。你应该在此处报告:https://meta.discourse.org/t/knowledge-base-plugin/115288。