iOS 有时在不同子域名之间导航时不会加载 CSS

感谢 @Don,我也 100% 复现了。使用 BrowserStack 测试,这看起来是 Safari 17 之后的回归。我在 Ventura(Safari 16.5)上没有复现,但在 Sonoma(Safari 17.3)上可以复现。我已经将上述步骤和发现向上游 Webkit 报告,这将有助于他们追踪此问题。

8 个赞

太棒了,可复现的步骤!:clap:

在我们的论坛(3.2.4)中也可以轻松复现。关键似乎是导航返回步骤,因为它会触发错误,无论初始页面或中间页面如何(我尝试了主题、分类、FAQ、徽章等)。

在 Webkit 调查此事的同时(我猜想修复程序要到达生产版本还需要一段时间),尝试确定 Discourse 中导致该错误在 Safari 中出现的特定更改,并在可能的情况下,如果简单且可行,是否可以有一个本地的解决方法?在我们的案例中,它是在我们最近从 3.1.5 更新到最新稳定版后才开始出现的。时间跨度很大,但也许可以先迭代查看 beta 版本,然后从那里开始?

2 个赞

PS:只是想补充一点,既然我现在可以重现它了,我尝试暂时禁用我们主网站上的 PWA,但似乎没有任何区别。所以……这与多 PWA 无关。

我在 Chrome 上也试了一下,发现了一个非常奇怪的现象。如果我理解正确的话,这应该只发生在 Safari 上?我本来是这么想的,但也许我错了。因为我在 iPad 的 Chrome 浏览器上也能重现这个问题。所以问题似乎出在操作系统上?在 Mac OS 的 Chrome 上也会这样吗?:thinking: 或者这只是因为 WebKit 的问题,所以 Chrome 在 iOS 和 iPadOS 上也受到了影响?

我的理解是,苹果不允许在 iOS/iPadOS 上使用第三方浏览器,因此 Chrome/Firefox 等实际上只是一个特殊的图形用户界面,它们在后台都使用 Webkit 来渲染页面。

由于问题出在 Webkit 上,因此在 iOS/iPadOS 上运行的任何浏览器都会受到影响。

6 个赞

是的,就是这样 :+1: 不过,这正在改变 Using alternative browser engines in the European Union - Support - Apple Developer

3 个赞

感谢您对此事的提醒 @mentalstring,经过二分法排查,我认为很可能的原因是:DEV: Change default of `cross_origin_opener_policy_header` (#24940) · discourse/discourse@38abc0d · GitHub

通过在我们的一台实例中运行 SiteSetting.cross_origin_opener_policy_header = 'unsafe-none' 在 Rails 控制台中,或者将此添加到您的 ENV 中:

DISCOURSE_CROSS_ORIGIN_OPENER_POLICY="unsafe-none"

可以修复此问题。该站点设置是一项安全加固措施,我们正在评估更新核心的利弊,但如果您(以及关注此问题的其他人)能在您的端进行尝试,那将非常棒,这将使我们更有信心认为这确实是 Discourse 中的根本性更改。

3 个赞

啊,找到了! :+1:

我可以确认将 COOP 设置为 'unsafe-none' 确实阻止了该 bug 在我们的 3.2.4 实例上出现。切换回 same-origin-allow-popups 会立即将其带回来。

很高兴能有一些临时的解决方法。与此同时,我想这可能是报告给 Webkit 团队的有用信息,因为它指出了触发它的特定内容。

附注:感谢您对此事的关注,也很抱歉打扰您——我只是在摸索着试图帮助我们的社区。 :sweat_smile:

2 个赞

Just to prevent others from missing it too, this bit should be:

DISCOURSE_CROSS_ORIGIN_OPENER_POLICY_HEADER: unsafe-none

1 个赞

各位,这里有一个后续更新:几周前,一位 WebKit 开发者合并了一个针对此问题的修复程序。我尝试使用夜间构建的 WebKit 版本进行测试,但不幸的是,我仍然可以重现该问题。不过,可能是我操作有误。将等待下一个 Safari Technology Preview 版本(应该很快发布)进行再次测试,希望它确实得到了修复。(WebKit 错误报告在此处。)

2 个赞

遗憾的是,在 Sequoia 的最新 Safari 版本中此问题仍未修复。我已重新打开上面链接的上游 Webkit 错误报告。

4 个赞

好消息,上游有一个修复程序,并且它在我的机器上使用 WebKit build archives 进行了测试。还需要几周时间才能首先应用到 Safari Technology Preview,然后再应用到通用 Safari。

7 个赞

你测试过它吗?

是的,确实如此。

这似乎终于被包含在 Safari Technology Preview, Release 209 (Safari 18.2, WebKit 20621.1.6) 中了。

希望在此主题中能得到其他用户的确认,然后再关闭。提前感谢!

2 个赞

我在 Release 210 中尝试了一下,可以确认在我们的论坛(稳定版)上使用 Safari TP 时此问题不再发生,但使用当前 Safari 时仍然发生。:+1:

有什么线索知道这需要多长时间才能进入 Safari 主线吗?

1 个赞

我猜它将在下一个 Safari 版本中发布,可能在几周内。感谢测试!

1 个赞

看起来这确实在Safari 18.3中修复了!

6 个赞

此主题已自动关闭,超过 3 天。不再允许回复。