似乎只发生在 iOS 设备上 - 有时外部链接会在同一窗口内打开,但 CSS 未加载。很奇怪,我甚至无法重现!
看起来像这样:
还在其他公共 Discourse 论坛上发现了报告:
既然之前有人报告过并已修复,我想知道这是否可能与主题或主题组件有关?感谢任何帮助。
似乎只发生在 iOS 设备上 - 有时外部链接会在同一窗口内打开,但 CSS 未加载。很奇怪,我甚至无法重现!
看起来像这样:
还在其他公共 Discourse 论坛上发现了报告:
既然之前有人报告过并已修复,我想知道这是否可能与主题或主题组件有关?感谢任何帮助。
当 CSS 加载失败时,网络日志中会显示哪些错误?
至于这是否是主题/组件问题,您是否尝试过安全模式?
不,仅仅因为我在过去两周内看到过几次这种行为,而且只发生在我的 iPhone 上,并且也从用户那里听到过同样的情况,但无法重现,看起来是随机的。
这看起来像是一个旧的 bug。我目前无法重现,所有链接的主题都至少有一年了。听起来像是一个没有更新的论坛。
谢谢,但它正在运行最新的测试版更新 ![]()
那个错误修复了什么?我想知道是否有可能是一个组件或主题重新生成了这个错误?
我正在尝试再次捕获它,它似乎偶尔会发生——不确定如何重现。但它确实发生了,据我所知,只发生在 iOS 上。
我正在使用多个 iOS 设备,iPhone 15 Pro Max、iPad Air 第 5 代、MacBook Air M2,但我无法重现此问题 ![]()
您使用的是什么型号的设备和 iOS 版本?
Personally, iPhone 12 with the latest iOS 17.4.
It only happens for links outside using html a href, but even then it happens occasionally only?
Would love to know what was the bug that was fixed - so perhaps I could try and trigger something to reproduce it ![]()
这些报告与 Discourse 论坛的 CSS 问题有何关联?第一个明确指出:
该论坛不受此问题影响
这似乎是相同的行为——它发生在从 Discourse 内部打开外部网站时。例如,从 meta.discourse.org 打开 https://discourse.org/。
那听起来不像是论坛引起的问题,如果外部网站也遇到了问题的话。
我也这么想,但似乎只有从论坛点击时才会发生这种情况,而且因为我找到了其他帖子,所以我想也许有人能对此有所了解——这可能是 iOS 的问题。如果每次都不加载 CSS,而只是偶尔加载 CSS,那就更容易了 ![]()
@Lilly 我想知道 discourse 如何处理 href,以及是否有针对 iOS 的特殊方法?这似乎是一个与 Safari 相关的问题,但它只发生在从 discourse 内部跳转到另一个域时。另一个域没有被加载,就好像 discourse 试图在本地加载请求页面的 HTML 一样。
我们已经尝试过强制 no-cache 策略并调整 www 前缀。似乎都没有效果。这正是这里提到的问题:
他们让主网站从他们的 community.URL.com 加载,这导致了同样的页面加载不完整。
提前感谢!
我们的 discourse 是主站点 (domain.com) 的一个子域 (here.domain.com)。
几个月以来,iPhone 用户一直反映,当从子域 (discourse) 点击链接返回主站点时,页面可能无法加载 CSS 或 JS,只加载 HTML,因此无法使用。
这种情况并非每次都发生,但足够频繁,以至于他们不得不刷新页面来修复。通过刷新,他们实际上仍然停留在 discourse 中,因此必须再次点击。
查看 nginx 的 access.log 文件,我们可以看到,出于某种原因,discourse 试图获取主域文件,而不是主域的索引。
Needless to say, discourse does not have these files and so the page is then broken.
以下是来自 nginx 的“access.log”的日志:
[19/May/2024:09:49:51 +0000] "here.domain.com" 176.76.227.47 "GET /js/cart/cart.js?v=0.32 HTTP/2.0" "Mozilla/5.0 (iPhone; CPU iPhone OS 17_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Ribblr Mobile" "-" 429 230 "https://here.domain.com/c/testing/17" - 0.000 "-" "-" "-" "-" "-" "-" "-"
[19/May/2024:09:49:51 +0000] "here.domain.com" 176.76.227.47 "GET /css/footer_and_header.css?v=1.13 HTTP/2.0" "Mozilla/5.0 (iPhone; CPU iPhone OS 17_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Ribblr Mobile" "-" 404 7963 "https://here.domain.com/c/testing/17" 0.019 0.019 "-" "-" "-" "-" "-" "-" "-"
[19/May/2024:09:49:51 +0000] "here.domain.com" 176.76.227.47 "GET /css/common/jssocials.css?v=0.03 HTTP/2.0" "Mozilla/5.0 (iPhone; CPU iPhone OS 17_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Ribblr Mobile" "-" 404 7968 "https://here.domain.com/c/testing/17" 0.020 0.020 "-" "-" "-" "-" "-" "-" "-"
[19/May/2024:09:49:51 +0000] "here.domain.com" 176.76.227.47 "GET /js/common/lightslider.js?v=0.14 HTTP/2.0" "Mozilla/5.0 (iPhone; CPU iPhone OS 17_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Ribblr Mobile" "-" 404 7980 "https://here.domain.com/c/testing/17" 0.020 0.020 "-" "-" "-" "-" "-" "-" "-"
[19/May/2024:09:49:51 +0000] "here.domain.com" 176.76.227.47 "GET /js/common/jssocials.js HTTP/2.0" "Mozilla/5.0 (iPhone; CPU iPhone OS 17_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Ribblr Mobile" "-" 404 7978 "https://here.domain.com/c/testing/17" 0.034 0.034 "-" "-" "-" "-" "-" "-" "-"
我们尝试使用 href 链接和 window.reload(),但问题仍然存在。再说一遍,这种情况只偶尔发生,而且只发生在 iPhone 用户身上。
有什么想法可以解释为什么会发生这种情况以及如何解决它?
这和你在这里描述的是同一个问题吗?
是的!需要合并 ![]()
我认为我们现在更好地理解了问题所在。
有什么团队成员有什么想法吗?@Lilly 我知道我们几个月前在这里讨论过——也许你有什么可以分享的见解?
我认为这和我第一篇帖子中分享的论坛网站是同一个问题。
我们注意到了一些奇怪的问题,例如这个。据我们所知,这一定是 Safari/WebKit 的一个 bug。这种“混合站点”渲染本不应该发生。我们已经向 WebKit 提交了报告。(抄送 @pmusaraj)
如果有人能找到一种一致的重现问题的方法,那几乎肯定有助于优先处理这个 bug。
有什么外部链接的变通方法吗?
HTML HREF 和 JS window.replace 的行为都一样 ![]()
(我确信前进/后退按钮几乎不可能被覆盖)
遗憾的是,我没有解决此问题的想法。我尝试取消注册服务工作线程,以防这是冲突的原因,但没有效果。
目前,我已切换到本地的 Safari Technology Preview。它似乎没有这个问题,这可能表明 Webkit 的新版本已修复此问题。或者,这意味着具有全新缓存的全新浏览器没有问题……很难说。
我们将继续关注此问题并寻找修复方法,此问题影响了 Discourse 团队的许多人,并且出现在不同的平台(macOS、iOS、DiscourseHub 应用)上。不过,除了找到一个神奇的修复方法之外,我们在这里最好的做法是关注Webkit bug 报告,并在相关/有用时添加其他信息。