我相当确定这与此处讨论的问题有关:https://meta.discourse.org/t/serviceworker-thinks-im-offline-when-im-not/77886。
在 Ubuntu 上使用最新的 Chrome 浏览器,同时安装了 Adblock 和 Adblock Plus 浏览器扩展进行测试,禁用其中任何一个扩展程序或仅为单个 Discourse 网站禁用它们,都会导致“House Ads”导航项无法添加到导航栏:
控制台中的错误是:
NetworkFirst.js:120 Uncaught (in promise) no-response: no-response :: [{\"url\":\"https://global.discourse-cdn.com/business4/assets/plugins/discourse-adplugin-78e860fa781ab21eafa70bfb3c8514cc572a1ff6eb65774509c6c022e1fbf211.br.js\"}]\n at u._handle (https://global.discourse-cdn.com/business4/assets/workbox-77b0e3e0dd4773bcd6c7e74f302f7c69/workbox-strategies.prod.js:54:13)\n at async u.Rt (https://global.discourse-cdn.com/business4/assets/workbox-77b0e3e0dd4773bcd6c7e74f302f7c69/workbox-strategies.prod.js:40:10)
如果我转到 Web 检查器的“Application”选项卡并选中“Bypass for network”复选框,文件就可以正常加载。
这本来不是什么大问题,但该问题也影响到通过脚本提供的 house ads。例如,从 revive adserver 提供的 house ads。在这种情况下,暂停的 adblocker 会阻止 revive 服务器的 /asyncjs.php 文件被提供。它会产生与我上面发布的相同的错误。
这似乎是扩展程序本身的问题,而不是 Discourse 的问题,但我不知道 Discourse 是否可以做些什么来解决它。
这个问题似乎已经存在一段时间了。这是 Adblock Plus 在 2018 年的一份错误报告,由《金融时报》的一位用户发布:https://forum.adblockplus.org/viewtopic.php?p=176568
