您好,我不确定这个问题出现了多久,并且只能在我的自托管 Discourse 实例上重现,该实例已更新到当前最新版本。
当匿名访客点击任何用户头像时,用户卡片的轮廓会显示几毫秒然后立即消失。F12 错误控制台显示:
GET https://example.com/u/UserName/card.json?include_post_count_for=xxxxx
状态 500 内部服务器错误
版本 HTTP/2
传输 294 B (大小 46 B)
Referrer Policy strict-origin-when-cross-origin
请求优先级 最高
在安全模式下也会发生这种情况。
我没有启用“隐藏个人资料供公众查看”设置,但我几天前测试过启用它,不确定这是否与此有关。
这似乎与您在用户卡中包含帖子计数的努力有关。您最终为此创建了一个插件吗?
我从未成功过。无论如何,那在安全模式下会被禁用。
?include_post_count_for=xxxxx 中的数字是主题 ID 的编号,而不是用户的编号。
我假设失败的功能是用户卡片中出现的“此主题中的 X 帖”按钮的功能。
安全模式仅禁用前端代码,但会保留一些服务器端的东西,所以即使在安全模式下出现问题,也可能仍然是插件。这里有一篇较新的帖子,其中包含更多信息:Safe-mode failed with a plugin - #4 by david
我在我的测试站点上无法重现此问题。您是否有任何插件/额外设置/任何可能产生影响的不寻常之处?/logs 中是否有关于错误的更多信息?
嗯,谢谢,看起来你说得对,是这个插件导致的:
正在 @pfaffman
Message (184 copies reported)
NoMethodError (undefined method `in_any_groups?' for nil:NilClass)
lib/plugin/instance.rb:301:in `public_send'
lib/plugin/instance.rb:301:in `block (2 levels) in add_to_class'
app/serializers/user_card_serializer.rb:144:in `can_send_private_message_to_user'
(eval):18:in `_fast_attributes'
app/controllers/application_controller.rb:545:in `render_json_dump'
app/controllers/users_controller.rb:147:in `block (2 levels) in show'
app/controllers/users_controller.rb:140:in `show'
app/controllers/users_controller.rb:152:in `show_card'
app/controllers/application_controller.rb:414:in `block in with_resolved_locale'
app/controllers/application_controller.rb:414:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:74:in `call'
lib/middleware/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:367:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
lib/middleware/request_tracker.rb:228:in `call'
Backtrace
plugins/discourse-allow-pm-to-staff/plugin.rb:52:in `block (2 levels) in activate!'
lib/plugin/instance.rb:301:in `public_send'
lib/plugin/instance.rb:301:in `block (2 levels) in add_to_class'
app/serializers/user_card_serializer.rb:144:in `can_send_private_message_to_user'
(eval):18:in `_fast_attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:468:in `rescue in attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:455:in `attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:480:in `_serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:359:in `serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:343:in `as_json'
2 个赞
我已经把它转给#support了,因为它是一个第三方插件。
2 个赞
插件的原始版本多年未修改,我从未注意到这个问题。然后,当更新破坏了用户之间的私信时,我禁用了该插件。现在,自从我按照您最新的修复程序重新启用它以来,我才注意到这个问题。
system
(system)
关闭
13
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.