Discourse 在游戏机浏览器上无法工作/加载?

我们的一些用户最近在 Xbox One 主机上浏览论坛时开始遇到空白页面问题。此前他们一直可以正常浏览论坛。

我在 Xbox Series X 主机上使用 Edge 浏览器和 C 轻浏览器进行了检查,确认了该问题。我还尝试访问其他 Discourse 论坛,但它们也无法加载。甚至 meta.discourse.org 也无法打开。

我们的一位成员尝试在 PlayStation 4 主机上加载论坛,同样没有成功。

因此,请问有人知道为什么 Discourse 无法在主机上加载吗?

3 个赞

这是 Microsoft Edge 的 EdgeHTML 版本(已不再受支持)存在的问题。请建议您的用户更新其应用程序。我能想象在主机游戏机上浏览 Discourse 社区会有多么困难。

不过,也有一个好消息。

4 个赞

我们当然应该显示 HTML 视图,而不是空白页面。您的用户是否遇到了空白/白色页面?

cc @dan

5 个赞

是的,页面是空白的。在浏览器标签页中可以看到你正在访问哪个论坛,但页面本身是空白的。在我访问的一个论坛上,他们使用了论坛的背景图片,该图片已加载,但 Discourse 本身并未加载。

我尝试了几乎所有可从 Microsoft Store 在控制台上下载的主流浏览器,结果都一样。

4 个赞

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"
5 个赞

Xbox Series 主机的下一次重大更新应该会切换到 Chromium Edge,如上方视频链接所示。因此,如果仅在那里添加 Xbox,检测逻辑就会有些失效。Trident/Edge/(新版 Edge 显示为 ‘Edg/’)可能是更好的匹配项。

PS4 浏览器(或 PS5 的“隐藏”浏览器?)出现异常确实很奇怪,索尼是否没有更新其 WebKit 端口,或者相较于 Safari 出现了某些问题?

1 个赞

这将涵盖许多除游戏主机外的其他用户代理,而这并非我们想要的,对吗?

4 个赞

来自 Microsoft Store 的所有网络浏览器都必须使用与旧版 Microsoft Edge 相同的渲染引擎。

1 个赞

我们已进行了必要的修复,使用旧版浏览器引擎的主机将收到我们提供的只读基础 HTML,并能够浏览 Discourse。

此外,通过上次更新,我们已确认 Xbox One、S 和 X 现在可以浏览完整的 Discourse Web 应用程序 :tada:

9 个赞

太棒了!我会在早上查看。感谢 Discourse 团队:heart:!

4 个赞

此变更已在过去 24 小时内上线!:grin:

是的,我刚在 Xbox Series X 和 Discourse 论坛上查看,页面已正常加载。再次感谢 :heart:

3 个赞

此主题在 2 天后自动关闭。不再允许新回复。