本指南介绍如何在 Discourse 中配置“允许的嵌入选择器”设置。当从外部站点发布帖子到 Discourse,或使用 JavaScript 在外部站点嵌入 Discourse 评论时,此设置至关重要。
所需用户级别:管理员
更高级的使用需要具备一定的 CSS 知识
当从外部站点向 Discourse 发布帖子,或在外部站点嵌入 Discourse 评论时,您可能会遇到“显示完整帖子”按钮无法拉取正确内容的问题。本指南将帮助您配置“允许的嵌入选择器”设置以解决此问题。
理解问题
当用户点击“显示完整帖子”按钮时,Discourse 可能无法从您的外部站点拉取正确的帖子内容。这时就需要用到“允许的嵌入选择器”设置。
定位设置
您可以在以下两个位置找到“允许的嵌入选择器”设置:
- 在您的站点设置页面搜索“允许的嵌入选择器”。
- 导航至 管理 > 自定义 > 嵌入,并在爬虫设置部分查找“嵌入中允许元素的 CSS 选择器”。
识别正确的 CSS 选择器
要找到合适的 CSS 选择器:
- 前往您已发布到 Discourse 的外部站点上的某篇帖子。
- 打开浏览器的网页检查器,检查帖子的 HTML 结构。
- 识别紧邻主要帖子内容周围的 HTML 元素。
例如,在典型的 WordPress 帖子中,内容通常位于 article 标签内的 .entry-content div 中。在这种情况下,您可以使用 article .entry-content 作为 CSS 选择器。
配置设置
要从外部站点拉取多种类型的内容,您可能需要添加多个选择器。例如:
article .entry-content img, article .entry-content p, article .entry-content ul
此示例针对文章条目内容中的图像、段落和无序列表。
测试与故障排除
找到正确的选择器可能需要一些尝试和错误。请注意:
- Discourse 会缓存外部帖子内容 10 分钟,因此更改可能不会立即生效。
- 为解决此问题,请使用多篇帖子进行测试,或在开发站点上使用 Rails 控制台中的
Rails.cache.clear清除缓存。
处理图像
如果您在从网站拉取图像时遇到问题,请确保您的 CSS 选择器包含适当的图像元素。例如:
article .entry-content img
此选择器针对文章条目内容中的图像。
其他注意事项
- “允许的嵌入选择器”设置既适用于通过 API 发布的帖子,也适用于使用 Discourse 嵌入脚本拉取的帖子。
- 您可能需要根据您特定的网站结构和内容类型调整选择器。
- 更新设置后,请务必保存更改。


