# Discourse 活动

**URL:** <https://meta.discourse.org/t/discourse-events/97376>\
**Category:** Plugin\
**Tags:** official, events, included-in-core\
**Created:** [2018年九月17日 15:50 UTC](https://meta.discourse.org/t/discourse-events/97376 "2018-09-17T15:50:24Z")\
**Posts on this page:** 1\
**Showing post:** 611

<div class="post-metadata">

**Author:** ![jesse\_mba\_commons](https://avatars.discourse-cdn.com/v4/letter/j/cab0a1/32.png) [@jesse\_mba\_commons](https://meta.discourse.org/u/jesse_mba_commons)\
**Post date:** [2026年八月14日 11:33 UTC](https://meta.discourse.org/t/discourse-events/97376/611 "2026-08-14T11:33:19Z")

</div>

Discourse 日历/事件插件的“即将发生的事件”（Upcoming Events）路由似乎从初始服务器端渲染的 HTML 响应中省略了所有 Open Graph 和 Twitter 卡片元数据。

在托管的 Discourse 站点上可以复现此问题，其中普通页面能正确输出社交元数据，且已配置有效的站点 OpenGraph 图片。

受影响的路由示例：

`https://www.mbacommons.com/upcoming-events/month/2026/8/1`

**复现步骤**

1. 配置有效的站点 OpenGraph 图片。
2. 确认首页或普通主题在原始 HTML 中输出了正常的 Open Graph 元数据。
3. 打开 `/upcoming-events/month/2026/8/1`。
4. 检查原始 `view-source:` / 初始服务器响应，而非 JavaScript 执行后的 DOM。

**实际结果**

“即将发生的事件”路由返回 HTTP 200，但原始 HTML 中不包含：

- `og:image`
- `og:title`
- `og:description`
- `og:url`
- `twitter:card`
- `twitter:image`

我还使用 `LinkedInBot/1.0` 进行了测试，结果相同。

对该站点进行的原始 HTML 生产环境审计统计如下：

- 首页：11 个社交元数据标签
- 普通主题：14 个
- 即将发生的事件：0 个

首页和普通主题正确使用了已配置的站点 OpenGraph 图片，因此站点级别的 branding 配置本身是正常工作的。

**预期结果**

“即将发生的事件”路由应输出爬虫可见的、服务器端渲染的社交元数据，至少包括：

- `og:title`
- `og:description`
- `og:url`
- `og:image`，若未设置则回退到已配置的站点 OpenGraph 图片
- 对应的 Twitter 卡片元数据

这些元数据必须包含在初始 HTML 中，因为 LinkedIn 和类似的社交爬虫无法依赖客户端主题 JavaScript。

LinkedIn 帖子检查器当前报告：

`Add an og:image tag to the page to have control over the content's image on LinkedIn.`

全局主题 `head_tag` 注入似乎并不合适，因为普通页面已经具有正确的元数据，且这可能导致标签重复或冲突。这似乎需要对“即将发生的事件”路由进行路由感知的服务器端处理，或使用 Discourse 的标准社交元数据渲染路径。

---

_[View the full topic](https://meta.discourse.org/t/discourse-events/97376)._
