# 匿名访客的用户卡片在 \`card.json?include\_post\_count\_for\` 中显示“500 内部服务器错误”后立即消失

**URL:** <https://meta.discourse.org/t/user-cards-for-anonymous-visitors-immediately-dissappear-with-500-internal-server-error-in-card-json-include-post-count-for/261309>\
**Category:** Support\
**Created:** [2023年四月11日 13:00 UTC](https://meta.discourse.org/t/user-cards-for-anonymous-visitors-immediately-dissappear-with-500-internal-server-error-in-card-json-include-post-count-for/261309 "2023-04-11T13:00:21Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![rahim123](https://avatars.discourse-cdn.com/v4/letter/r/df705f/32.png) [@rahim123](https://meta.discourse.org/u/rahim123)\
**Post date:** [2023年四月11日 13:00 UTC](https://meta.discourse.org/t/user-cards-for-anonymous-visitors-immediately-dissappear-with-500-internal-server-error-in-card-json-include-post-count-for/261309/1 "2023-04-11T13:00:21Z")

</div>

您好，我不确定这个问题出现了多久，并且只能在我的自托管 Discourse 实例上重现，该实例已更新到当前最新版本。

当匿名访客点击任何用户头像时，用户卡片的轮廓会显示几毫秒然后立即消失。F12 错误控制台显示：

```plaintext
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
请求优先级 最高

```

在安全模式下也会发生这种情况。

我没有启用“隐藏个人资料供公众查看”设置，但我几天前测试过启用它，不确定这是否与此有关。

---

<div class="post-metadata">

**Author:** ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)\
**Post date:** [2023年四月11日 13:07 UTC](https://meta.discourse.org/t/user-cards-for-anonymous-visitors-immediately-dissappear-with-500-internal-server-error-in-card-json-include-post-count-for/261309/2 "2023-04-11T13:07:36Z")

</div>

这似乎与您[在用户卡中包含帖子计数](https://meta.discourse.org/t/adding-post-count-to-user-card/254128)的努力有关。您最终为此创建了一个插件吗？

---

<div class="post-metadata">

**Author:** ![rahim123](https://avatars.discourse-cdn.com/v4/letter/r/df705f/32.png) [@rahim123](https://meta.discourse.org/u/rahim123)\
**Post date:** [2023年四月11日 13:11 UTC](https://meta.discourse.org/t/user-cards-for-anonymous-visitors-immediately-dissappear-with-500-internal-server-error-in-card-json-include-post-count-for/261309/3 "2023-04-11T13:11:06Z")

</div>

我从未成功过。无论如何，那在安全模式下会被禁用。

`?include_post_count_for=xxxxx` 中的数字是主题 ID 的编号，而不是用户的编号。

我假设失败的功能是用户卡片中出现的“此主题中的 X 帖”按钮的功能。

---

<div class="post-metadata">

**Author:** ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)\
**Post date:** [2023年四月11日 13:34 UTC](https://meta.discourse.org/t/user-cards-for-anonymous-visitors-immediately-dissappear-with-500-internal-server-error-in-card-json-include-post-count-for/261309/4 "2023-04-11T13:34:53Z")

</div>

> [@rahim123](#):
>
> 无论如何，这将在[安全模式](https://meta.discourse.org/t/how-to-use-discourse-safe-mode/53504)下被禁用。

安全模式仅禁用前端代码，但会保留一些服务器端的东西，所以即使在安全模式下出现问题，也可能仍然是插件。这里有一篇较新的帖子，其中包含更多信息：[Safe-mode failed with a plugin - #4 by david](https://meta.discourse.org/t/safe-mode-failed-with-a-plugin/258097/4?u=jammydodger)

我在我的测试站点上无法重现此问题。您是否有任何插件/额外设置/任何可能产生影响的不寻常之处？`/logs` 中是否有关于错误的更多信息？

---

<div class="post-metadata">

**Author:** ![rahim123](https://avatars.discourse-cdn.com/v4/letter/r/df705f/32.png) [@rahim123](https://meta.discourse.org/u/rahim123)\
**Post date:** [2023年四月11日 13:46 UTC](https://meta.discourse.org/t/user-cards-for-anonymous-visitors-immediately-dissappear-with-500-internal-server-error-in-card-json-include-post-count-for/261309/5 "2023-04-11T13:46:40Z")

</div>

嗯，谢谢，看起来你说得对，是这个插件导致的：

> [@Allow-pm-to-staff](https://meta.discourse.org/t/allow-pm-to-staff/260946):
>
> information_sourceSummary Allow all users to PM Staffhammer_and_wrenchRepository Link [https://github.com/pfaffman/discourse-allow-pm-to-staff](https://github.com/pfaffman/discourse-allow-pm-to-staff)open_bookInstall Guide [How to install plugins in Discourse](https://meta.discourse.org/t/install-plugins-in-discourse/19157)Features Allow users to send a PM to staff even if they would not otherwise be able to send a PM. Configuration allow\_pm\_to\_staff\_enabled–Enables the plugin (default true) allow\_pm\_allowed\_pm\_groups–Set groups who can receive PMs from all users (default “staff”). S…

正在 @pfaffman

```plaintext
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'

```

---

<div class="post-metadata">

**Author:** ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)\
**Post date:** [2023年四月11日 13:50 UTC](https://meta.discourse.org/t/user-cards-for-anonymous-visitors-immediately-dissappear-with-500-internal-server-error-in-card-json-include-post-count-for/261309/6 "2023-04-11T13:50:52Z")

</div>

我已经把它转给#support了，因为它是一个第三方插件。👍

---

<div class="post-metadata">

**Author:** ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)\
**Post date:** [2023年四月11日 14:12 UTC](https://meta.discourse.org/t/user-cards-for-anonymous-visitors-immediately-dissappear-with-500-internal-server-error-in-card-json-include-post-count-for/261309/7 "2023-04-11T14:12:27Z")

</div>

升级后此问题是否仍然存在？

---

<div class="post-metadata">

**Author:** ![rahim123](https://avatars.discourse-cdn.com/v4/letter/r/df705f/32.png) [@rahim123](https://meta.discourse.org/u/rahim123)\
**Post date:** [2023年四月11日 14:16 UTC](https://meta.discourse.org/t/user-cards-for-anonymous-visitors-immediately-dissappear-with-500-internal-server-error-in-card-json-include-post-count-for/261309/8 "2023-04-11T14:16:13Z")

</div>

插件的原始版本多年未修改，我从未注意到这个问题。然后，当更新破坏了用户之间的私信时，我禁用了该插件。现在，自从我按照您最新的修复程序重新启用它以来，我才注意到这个问题。

---

<div class="post-metadata">

**Author:** ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)\
**Post date:** [2023年四月11日 14:32 UTC](https://meta.discourse.org/t/user-cards-for-anonymous-visitors-immediately-dissappear-with-500-internal-server-error-in-card-json-include-post-count-for/261309/9 "2023-04-11T14:32:01Z")

</div>

那么问题依然存在？

---

<div class="post-metadata">

**Author:** ![rahim123](https://avatars.discourse-cdn.com/v4/letter/r/df705f/32.png) [@rahim123](https://meta.discourse.org/u/rahim123)\
**Post date:** [2023年四月11日 14:34 UTC](https://meta.discourse.org/t/user-cards-for-anonymous-visitors-immediately-dissappear-with-500-internal-server-error-in-card-json-include-post-count-for/261309/10 "2023-04-11T14:34:13Z")

</div>

当启用了 [GitHub - pfaffman/discourse-allow-pm-to-staff: Allow private messages to be sent to staff for users who could otherwise not send private messages.](https://github.com/pfaffman/discourse-allow-pm-to-staff) 插件时，匿名用户用户卡消失的问题就会发生，禁用该插件后问题即可解决。

---

<div class="post-metadata">

**Author:** ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)\
**Post date:** [2023年四月18日 15:42 UTC](https://meta.discourse.org/t/user-cards-for-anonymous-visitors-immediately-dissappear-with-500-internal-server-error-in-card-json-include-post-count-for/261309/11 "2023-04-18T15:42:34Z")

</div>

我相信这个 bug 现在已经修复了。请尽快升级。

---

<div class="post-metadata">

**Author:** ![rahim123](https://avatars.discourse-cdn.com/v4/letter/r/df705f/32.png) [@rahim123](https://meta.discourse.org/u/rahim123)\
**Post date:** [2023年四月18日 18:23 UTC](https://meta.discourse.org/t/user-cards-for-anonymous-visitors-immediately-dissappear-with-500-internal-server-error-in-card-json-include-post-count-for/261309/12 "2023-04-18T18:23:29Z")

</div>

已确认修复，谢谢！

---

<div class="post-metadata">

**Author:** ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)\
**Post date:** [2023年五月18日 18:23 UTC](https://meta.discourse.org/t/user-cards-for-anonymous-visitors-immediately-dissappear-with-500-internal-server-error-in-card-json-include-post-count-for/261309/13 "2023-05-18T18:23:50Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
