您的使用场景在 Discourse 中确实不支持开箱即用,需要进行一些自定义开发。建议您考虑开发插件,或聘请顾问协助您实现该功能。
我建议在“故障排除”部分补充:如果 Discourse 无法解析您的页面或博客文章内容以创建新话题,嵌入将会失败(且不会给出任何提示)。请先尝试嵌入某个特定话题,然后再利用解析页面的相关选项。
如果您试图从您网站的 <head> 部分提取 meta 标签的内容,我认为这无法实现。
我仍然感到遗憾,为什么不能简单地为嵌入中提供的链接生成一个信息框,而不是进行更复杂的文本和潜在图片导入。
对于拥有复杂页面数据/布局的网站,难道没有人想到过这样的场景:主题既作为讨论的占位符,又作为引导用户前往远程网站查看文章或故事的方式吗?
拜托了? ![]()
因此,我们考虑在我们的主站的一些博客和文章上实施这一方案,并使用论坛。今天早上开会时,我的市场人员说这是个坏主意,因为论坛上发布的每篇文章都会与我们的博客内容重复,因为它们标题相同,且显示相同的开头段落。他通过一次谷歌搜索示例展示了这一点。是否有内置功能可以帮助向谷歌表明这些并非重复内容?或者,能否对这些帖子设置 no-index?
嗯,这很有趣,因为如果我们添加了 noindex,评论也不会被索引,这并不理想。有没有办法告诉谷歌“页面的这部分是重复内容”?
我们可以将其应用于原始发帖人(OP)。
这确实是我们讨论时我担心的问题。我不想损害博客的 SEO 价值,但也不希望隐藏论坛的问答内容,因为有时它的吸引力与某些博客文章不相上下。目前我还不确定如何告诉 Google 索引帖子的某一部分,而不索引另一部分。
Discourse 提供了一个名为“嵌入设置规范 URL"(embed set canonical url)的站点设置。启用该设置后,嵌入主题的标准 URL 将被设置为嵌入内容的 URL。这是否有助于改善重复内容问题?
听起来这有助于解决问题。您是否认识正在使用此功能的人,以便我能查看并分享一个示例?
另一种选择是在讨论标题前加上“关于______的评论”。
这个问题比较棘手,因为我无法分享有关我们客户网站的具体细节。关于此问题,这里有更多详细信息:https://meta.discourse.org/t/add-option-to-set-canonical-url-to-embed-url/103915。我已在该主题中询问,看看是否有人愿意提供关于启用该设置如何影响其 SEO 的详情。
仅更改标题是否足够?帖子内容仍会被分享。
不知为何,我甚至无法查看该页面,即使禁用了广告拦截器,系统仍提示需要禁用它。
就我的经验而言,仅一段“重复”内容还不足以引发任何重复内容问题——毕竟你用的是我博客里的截图 ![]()
这就像引用某篇随机文章中的一段话。
我成功让嵌入功能从页面抓取了我的照片。问题出在我这边,因为代码使用了一个名为 lazyload 的预加载/淡入图像 JavaScript。一旦移除它,创建主题时就能在类选择器区域设置任何图像。然而……
主题已创建,并在几分钟内正常工作。图像可以通过点击缩放查看。但几分钟后刷新页面,主题内容发生变化,图像位置被替换为“上传”文本行。

这似乎是图像未能远程上传到论坛服务器的问题。有人知道为什么会失败吗?另外,如果确实失败,为什么系统不保留原始 URL 位置?这似乎很奇怪。
我还想补充一点,这并非个别案例。所有最初包含图像的主题(约 10 多个)都一致出现了这个问题。
[更新:解决方法是将我的网站添加到不下载图像的黑名单中。这样 HTML 就会直接从远程站点获取图像。对我而言有效。]
当 URL 发生变化(例如博客标题更新)时,我们能否阻止创建新主题?
是的,但您的博客软件需要跟踪首次调用时创建的帖子 ID,并在后续的嵌入请求中将其作为参数传递。
请参阅主贴中的“链接到现有帖子”部分。
我无法通过 TypeScript 在 Angular 中嵌入,请帮忙
let window: any;
window.DiscourseEmbed = { discourseUrl: 'xyz.com',
topicId: 26 };
let script = this._renderer2.createElement('script');
script.type = "text/javascript";
script.src = window.DiscourseEmbed.discourseUrl + 'javascripts/embed.js';
script.async = true;
this._renderer2.appendChild(this._document.body, script);


