嵌入话语中

在嵌入讨论时,我无论如何都无法让它自动分配到某个分类。

我正在使用一个 Vue.js 应用,我希望在每个标准(Discourse 中的子分类)下显示与该子分类关联的嵌入式讨论。

我的嵌入代码如下:

window.DiscourseEmbed = {
discourseUrl: ‘https://forum.example.example.nz/’,
discourseEmbedUrl: ‘https://example.example.example.nz/c/english-level-1/1-1-written-text-study/
// topicId: 273
};

    (function () {
      const d = document.createElement('script'); d.type = 'text/javascript'; d.async = true;
      d.src = `${DiscourseEmbed.discourseUrl}javascripts/embed.js`;

      (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(d);
    }());

限制:
我了解使用此嵌入功能会创建新主题。
我也无法在 “window.DiscourseEmbed” 对象中添加分类以实现自动分配。

但我非常希望嵌入代码创建的新讨论能位于我的
(分类)English Level 1 → (子分类)Standard 1.1 中。

你可以在这里看到:

它包含指向我希望所在的分类的链接。但该主题却位于最顶层的 Latest 下,这并不理想。

我知道可以使用 host 参数,我也尝试过对此进行一些“hack”:

我不确定是自己遗漏了什么,还是仅仅试图将这个嵌入功能用于一个远超其设计范围的特定场景。

任何帮助都将不胜感激,谢谢 :slight_smile:

主题应创建在您为主机设置的类别中。从您的第二张截图来看,问题在于您为 localhost:8082 设置了两台允许的宿主主机,但第一台宿主主机的路径白名单会导致所有主题都被发布为“未分类”。

路径白名单必须设置为您在“允许的宿主主机”字段中设置的域名的路径,因此它应仅以 / 开头。以下是我测试站点的设置截图:它会将我博客中的所有主题发布到“草稿”类别:

如果我只想发布我网站上 /blog 路径下的主题,我会这样配置:

image

昨天我遇到了一个问题:当我为主机设置了类别后,帖子仍被发布到我网站的“未分类”类别中。我_认为_原因是我试图将主题发布到一个受保护的类别。我将继续深入调查,以确认这是否是问题所在。

正如您所看到的,我已经按照您的建议操作:

配置已按您的建议完成。但它仍然在创建“未分类”主题,而我期望它位于“英语 Level 1(分类)”->“1.1 书面文本学习(子分类)”下。

我使用的 discourseEmbedUrl 是:“h ttps://forum.studyit.govt.nz/c/english-level-1/1-1-written-text-study”

我确定是我的路径白名单设置错误,但它似乎除了 /.* 之外不接受任何其他内容。

  • 我期望下一张图片能将所有内容重定向到 1.1 子分类,但实际上并没有:

最后:页面嵌入所在的 URL 是:http://localhost:8082/#/English/level/1/standard/1.1/discussion

“路径白名单”设置应该是您试图导入到 Discourse 站点的帖子路径,而不是您希望在 Discourse 上发布帖子的路径。根据您第二张截图中的设置,看起来是正确的。我不确定为什么这会导致无法将主题发布到正确的分类。您是否在该分类上设置了任何安全权限?“所有人”组是否被允许在该分类中“创建/回复/查看”?