我们的一些用户最近在 Xbox One 主机上浏览论坛时开始遇到空白页面问题。此前他们一直可以正常浏览论坛。
我在 Xbox Series X 主机上使用 Edge 浏览器和 C 轻浏览器进行了检查,确认了该问题。我还尝试访问其他 Discourse 论坛,但它们也无法加载。甚至 meta.discourse.org 也无法打开。
我们的一位成员尝试在 PlayStation 4 主机上加载论坛,同样没有成功。
因此,请问有人知道为什么 Discourse 无法在主机上加载吗?
我们的一些用户最近在 Xbox One 主机上浏览论坛时开始遇到空白页面问题。此前他们一直可以正常浏览论坛。
我在 Xbox Series X 主机上使用 Edge 浏览器和 C 轻浏览器进行了检查,确认了该问题。我还尝试访问其他 Discourse 论坛,但它们也无法加载。甚至 meta.discourse.org 也无法打开。
我们的一位成员尝试在 PlayStation 4 主机上加载论坛,同样没有成功。
因此,请问有人知道为什么 Discourse 无法在主机上加载吗?
这是 Microsoft Edge 的 EdgeHTML 版本(已不再受支持)存在的问题。请建议您的用户更新其应用程序。我能想象在主机游戏机上浏览 Discourse 社区会有多么困难。
不过,也有一个好消息。
我们当然应该显示 HTML 视图,而不是空白页面。您的用户是否遇到了空白/白色页面?
cc @dan
是的,页面是空白的。在浏览器标签页中可以看到你正在访问哪个论坛,但页面本身是空白的。在我访问的一个论坛上,他们使用了论坛的背景图片,该图片已加载,但 Discourse 本身并未加载。
我尝试了几乎所有可从 Microsoft Store 在控制台上下载的主流浏览器,结果都一样。
Discourse 有两种检测“不支持的浏览器”(即未实现 Discourse 正常运行所需全部 API 的浏览器)的方法。
第一种方法在 JavaScript 中实现,让浏览器自行判断是否无法渲染页面,并自动回退到静态 HTML 视图。本应如此,但游戏主机浏览器存在某种(目前尚不清楚的)特殊性,导致无法执行该代码,从而渲染出空白页面。
第二种方法在服务器端运行,是专门为这些情况实现的,当检测到某些用户代理时,会强制浏览器渲染静态 HTML 视图。该方法使用一个隐藏的站点设置,您可以通过 Rails 控制台进行更新。
我认为这将解决您的问题。要启动控制台,请 SSH 登录到您的服务器并运行:
cd /var/discourse
./launcher enter app
rails c
要更新隐藏的站点设置,请输入:
SiteSetting.browser_update_user_agents = "#{SiteSetting.browser_update_user_agents}|Xbox|PlayStation"
Xbox Series 主机的下一次重大更新应该会切换到 Chromium Edge,如上方视频链接所示。因此,如果仅在那里添加 Xbox,检测逻辑就会有些失效。Trident/ 或 Edge/(新版 Edge 显示为 ‘Edg/’)可能是更好的匹配项。
PS4 浏览器(或 PS5 的“隐藏”浏览器?)出现异常确实很奇怪,索尼是否没有更新其 WebKit 端口,或者相较于 Safari 出现了某些问题?
这将涵盖许多除游戏主机外的其他用户代理,而这并非我们想要的,对吗?
来自 Microsoft Store 的所有网络浏览器都必须使用与旧版 Microsoft Edge 相同的渲染引擎。
我们已进行了必要的修复,使用旧版浏览器引擎的主机将收到我们提供的只读基础 HTML,并能够浏览 Discourse。
此外,通过上次更新,我们已确认 Xbox One、S 和 X 现在可以浏览完整的 Discourse Web 应用程序 ![]()
太棒了!我会在早上查看。感谢 Discourse 团队:heart:!
此变更已在过去 24 小时内上线!![]()
是的,我刚在 Xbox Series X 和 Discourse 论坛上查看,页面已正常加载。再次感谢
。
此主题在 2 天后自动关闭。不再允许新回复。