User Notes 插件导致我的网站崩溃

我刚刚更新了两个我维护的站点,在两个站点上都遇到了导致我转向用户笔记插件的困难。

昨天,我的一个站点出现了“白色屏幕死机”——除了安全模式外,站点完全无法访问。我注释掉了 app.yml 中的插件并重新构建,站点恢复了。

在另一个站点上,只有带有徽标和汉堡菜单等的顶部导航栏消失了,并且我在控制台中看到了一个错误——见下文。通过管理仪表板禁用该插件使其恢复正常。

vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:12 Uncaught (in promise) Error: Could not find module `discourse/plugins/discourse-user-notes/discourse-user-notes/connectors/user-profile-controls/show-notes-on-profile` imported from `discourse/plugins/discourse-staff-notes/discourse-user-notes/connectors/admin-user-controls-after/add-user-notes-button`
    at vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:12:31
    at c (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:12:96)
    at s.findDeps (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:24:158)
    at c (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:12:152)
    at requireModule (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:6:60)
    at discourse-aebc0fdc441730b0e5f42bf52a5341cffca664e9a40a015a846b1b64f61dd773.js:4420:78
    at discourse-aebc0fdc441730b0e5f42bf52a5341cffca664e9a40a015a846b1b64f61dd773.js:4420:1
    at Array.forEach (<anonymous>)
    at a (discourse-aebc0fdc441730b0e5f42bf52a5341cffca664e9a40a015a846b1b64f61dd773.js:4417:32)
    at u (discourse-aebc0fdc441730b0e5f42bf52a5341cffca664e9a40a015a846b1b64f61dd773.js:4420:39)
    at discourse-aebc0fdc441730b0e5f42bf52a5341cffca664e9a40a015a846b1b64f61dd773.js:4424:261
    at discourse-aebc0fdc441730b0e5f42bf52a5341cffca664e9a40a015a846b1b64f61dd773.js:4420:1
    at Array.forEach (<anonymous>)
    at a (discourse-aebc0fdc441730b0e5f42bf52a5341cffca664e9a40a015a846b1b64f61dd773.js:4417:32)
    at c (discourse-aebc0fdc441730b0e5f42bf52a5341cffca664e9a40a015a846b1b64f61dd773.js:4424:64)
    at e.renderedConnectorsFor (discourse-aebc0fdc441730b0e5f42bf52a5341cffca664e9a40a015a846b1b64f61dd773.js:4414:65)
    at e.init (discourse-aebc0fdc441730b0e5f42bf52a5341cffca664e9a40a015a846b1b64f61dd773.js:1196:50)
    at e.r [as init] (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:2090:9)
    at g (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:2007:98)
    at e.create (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:2015:108)
    at g.create (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:604:93)
    at ye.create (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:747:9)
    at Object.evaluate (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:3299:9)
    at Object.evaluate (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:3134:13)
    at Dt.evaluateSyscall (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:3435:61)
    at Dt.evaluateInner (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:3429:138)
    at Dt.evaluateOuter (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:3429:59)
    at Wt.next (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:3490:26)
    at Wt._execute (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:3489:25)
    at Wt.execute (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:3488:298)
    at Yt.sync (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:3492:86)
    at Er.render (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:1061:546)
    at vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:1087:31
    at It (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:3425:5)
    at Rr._renderRoots (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:1086:34)
    at Rr._renderRootsTransaction (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:1091:10)
    at Rr._renderRoot (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:1085:50)
    at Rr._appendDefinition (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:1080:6)
    at Rr.appendOutletView (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:1078:6)
    at invoke (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:3834:139)
    at p.flush (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:3826:74)
    at h.flush (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:3839:207)
    at q._end (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:3896:9)
    at _boundAutorunEnd (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:3848:605)
discourse-aebc0fdc441730b0e5f42bf52a5341cffca664e9a40a015a846b1b64f61dd773.js:5224 Uncaught (in promise) TypeError: Cannot read properties of null (reading 'addEventListener')
    at discourse-aebc0fdc441730b0e5f42bf52a5341cffca664e9a40a015a846b1b64f61dd773.js:5224:291
    at Array.forEach (<anonymous>)
    at e.didInsertElement (discourse-aebc0fdc441730b0e5f42bf52a5341cffca664e9a40a015a846b1b64f61dd773.js:5224:253)
    at e.r [as didInsertElement] (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:2090:9)
    at e.trigger (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:2233:34)
    at e.r [as trigger] (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:2090:9)
    at ye.didCreate (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:761:32)
    at Nt.commit (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:3414:3)
    at Mt.commit (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:3423:17)
    at It (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:3425:19)
    at Rr._renderRoots (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:1086:34)
    at Rr._renderRootsTransaction (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:1091:10)
    at Rr._revalidate (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:1091:490)
    at invoke (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:3834:129)
    at p.flush (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:3826:74)
    at h.flush (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:3839:207)
    at q._end (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:3896:9)
    at _boundAutorunEnd (vendor-fded770671ed964514369b968313e4ab522dc911c142420bcc24ae31cf85252f.js:3848:605)
4 个赞

我也认为它已安装在 meta 上?这里有什么可重现的吗?

4 个赞

我会在更新我的测试站点时告知你发生了什么……

编辑:在升级前,我特意添加了一些用户注释,看看是否会导致任何问题,但我没有遇到任何问题。一切正常。

4 个赞

我在我的测试站点(80fce67150)和 Meta 站点上都有这个插件,而且一切似乎都运行正常?

实际上,这么说来,“添加用户备注”按钮只在某些用户卡片上显示,而在其他用户卡片上不显示。

认为它只显示给曾经附加过用户备注的人。那些从未附加过备注的人似乎没有生成它。

@tobiaseigen 你在这两个站点上使用过用户备注吗?

5 个赞

真是个难题。我现在已经禁用了它,因为它在我的网站上不起作用,所以无法检查。在出现白屏死机的网站上,我过去曾使用过它,但不记得是在哪个用户身上了。在出现标题丢失的网站上,我从未用过它。

2 个赞

我当时在想,也许是因为根本没有(用户备注),它在尝试找出某些东西时遇到了困难,因为它没有可以遵循的先例:


`Uncaught (in promise) Error: Could not find module `discourse/plugins/discourse-user-notes/discourse-user-notes/connectors/user-profile-controls/show-notes-on-profile` imported from `discourse/plugins/discourse-staff-notes/discourse-user-notes/connectors/admin-user-controls-after/add-user-notes-button`
    

还有第二个错误:

Cannot read properties of null

我很确定 :memo: 图标通常会显示在每个人的用户卡片上,所以即使在这里,有些东西也有些不对劲。

1 个赞

嗯……死亡白屏在自定义主题组件的设置中显示了此内容。也许下一步我应该尝试禁用此主题组件,然后重新启用用户笔记。

抱歉 – 不允许使用 ember 或 .ember-view CSS 选择器,因为这些名称是在运行时动态生成的,并且会随着时间的推移而改变,最终导致 CSS 损坏。请尝试其他选择器。

2 个赞

除非我误解了你的意思……我认为这不正确。我只在为特定用户创建了用户备注时才看到过 :memo: 图标。我从未见过仅在插件启用时就将其应用于所有用户。

3 个赞

用户名旁边的帖子仅在有备注时显示。但我想用户卡片是添加备注的便捷方式。

不过我可能记错了。 :slightly_smiling_face:

2 个赞

啊……是的,我认为我们在两个不同的地方讨论用户界面:在用户配置文件中,当插件启用时,按钮应始终存在,如下所示:

2022-08-26_jammy_user_notes

但只应出现在主题中的名字旁边,前提是他们有用户备注:

谁会在句子中使用“thusly”?我用。

2 个赞

抱歉,我应该也附上截图的。:slight_smile: 我指的是用户卡片上的 :memo: 图标:

它只显示在部分用户身上,而没有显示在其他人身上,但我以为它以前对所有人都显示。

2 个赞

啊……我们越来越近了。:wink:
我只在用户有关联的备注时才在那里见过它。我一直期望是这样,但我必须查看代码才能知道这是否是预期的。

3 个赞

重建 Docker 镜像后,我遇到了同样的问题。

在网站首页,Chrome 的开发者控制台中反复出现以下错误:

Uncaught (in promise) Error: Could not find module `discourse/plugins/discourse-user-notes/discourse-user-notes/connectors/user-profile-controls/show-notes-on-profile` imported from `discourse/plugins/discourse-staff-notes/discourse-user-notes/connectors/admin-user-controls-after/add-user-notes-button`
    at loader.js:247:1
    at c (loader.js:258:1)
    at s.findDeps (loader.js:168:1)
    at c (loader.js:262:1)
    at requireModule (loader.js:24:1)
    at plugin-connectors.js:65:1
    at plugin-connectors.js:51:1
    at Array.forEach (<anonymous>)
    at a (plugin-connectors.js:46:1)
    at u (plugin-connectors.js:64:1)
    at plugin-connectors.js:93:1
    at plugin-connectors.js:51:1
    at Array.forEach (<anonymous>)
    at a (plugin-connectors.js:46:1)
    at c (plugin-connectors.js:84:1)
    at e.renderedConnectorsFor (plugin-connectors.js:107:1)
    at e.init (plugin-outlet.js:53:1)
    at e.r [as init] (index.js:449:1)
    at g (core_object.js:149:1)
    at e.create (core_object.js:685:1)
    at g.create (index.js:551:1)
    at ye.create (index.js:1054:1)
    at Object.evaluate (runtime.js:3301:1)
    at Object.evaluate (runtime.js:1312:1)
    at Dt.evaluateSyscall (runtime.js:5232:1)
    at Dt.evaluateInner (runtime.js:5188:1)
    at Dt.evaluateOuter (runtime.js:5180:1)
    at Wt.next (runtime.js:6191:1)
    at Wt._execute (runtime.js:6175:1)
    at Wt.execute (runtime.js:6166:1)
    at Yt.sync (runtime.js:6250:1)
    at Er.render (index.js:7576:1)
    at index.js:7896:1
    at It (runtime.js:5074:1)
    at Rr._renderRoots (index.js:7876:1)
    at Rr._renderRootsTransaction (index.js:7928:1)
    at Rr._renderRoot (index.js:7863:1)
    at Rr._appendDefinition (index.js:7770:1)
    at Rr.appendOutletView (index.js:7752:1)
    at invoke (backburner.js:353:1)
    at p.flush (backburner.js:241:1)
    at h.flush (backburner.js:447:1)
    at B._end (backburner.js:999:1)
    at B._boundAutorunEnd (backburner.js:648:1)

禁用 admin->plugins 中的插件后,错误消失了,但现在也没有笔记了 :frowning:

这是因为我运行的是 discourse-staff-notes 而不是 discourse-user-notes 吗?

2 个赞

据我所知,用户备注是内部备注的新名称,它们是同一回事。如果您访问 https://github.com/discourse/discourse-staff-notes,您将被重定向到:

如果 app.yml 引用了旧路径,纠正它肯定无害。

3 个赞

FWIW 我们今天遇到了和 Tobias 一样的错误。

同样的错误,移动端白屏,桌面端没有顶部导航。
发生在主页(可能在更多页面上,没检查)。

长话:睡眠:短,获胜的评论在这里

即使它们链接到同一个存储库,当插件安装在不是 discourse-staff-notes 的插件目录中时,插件也会中断。

所以 Tobias,我想打赌你还是老派,还叫它 discourse-staff-notes,对吧?

6 个赞

当然!我早在 2015 年就设置了这个站点,所以相当老派。我刚刚重命名了它,现在正在重建,所以让我们看看会发生什么。谢谢你的建议!

4 个赞

我刚刚重命名并重新构建,启用后就可以再次运行了!

谢谢 @RGJ

我们也是 2015 年!

6 个赞

我想轮换就像更新一样。你只需要记住去做。

5 个赞

此主题在上次回复后 30 天自动关闭。不再允许回复。