新的 discourse 实例在标签上存在问题?

我的新 Discourse 实例(当前版本为 38950840e0)上线才几天。今天启用标签功能时,我很快遇到了一系列问题。

创建新主题时,我可以添加标签,一切正常。但是,当我尝试编辑现有主题以添加标签,或者创建新标签时,没有任何反应。我在网络请求中看到标签通过 PUT 请求发送,但在数据库日志中,topic_tagstags 表中没有任何记录。

我还发现,有时标签链接到 /tag/<tagname>,有时链接到 /tags/<tagname>。前者有效,后者无效。

我的安装基本是默认配置,插件很少,只有 multilingual 插件,我想它确实涉及标签功能?在管理员设置中,我几乎没有更改过任何选项,关于标签我只勾选了“在主题上启用标签?”,其他都没动。

论坛已上线,但目前设置为私有。如果有人想查看,我可以提供邀请链接……

1 个赞

标签路由最近已从 tags 重命名为 tag。问题很可能由某个插件引起。

能否请您查看网站的错误日志(位于 管理 / 日志 / 错误日志),然后给某个主题添加标签?这可能会在日志中触发一条新记录。如果触发了,或者您看到任何提及标签的旧日志条目,请查看该日志条目的“信息”和“回溯”选项卡中显示的内容。

“回溯”选项卡可能会提供有关问题成因的信息。它看起来大致如下:

2 个赞

谢谢回复。日志中没有任何内容。我唯一能猜测的是,Multilingual Plugin 🌐 中的内容尚未更新以适配最近的变更?

事实上,我并不需要整个插件,只需要其中一部分:禁用现有界面语言的使用,但我看不出有其他简单的方法来实现这一点。

1 个赞

以备将来参考,如果这对任何人有用,我从多语言插件中提取了所需的非常简短的代码片段,并将其放入一个单独的插件中,它在我的使用场景中运行良好:

// assets/javascripts/discourse/initializers/custom-locale-initializer.js.es6

import { withPluginApi } from 'discourse/lib/plugin-api';
import { default as discourseComputed } from "discourse-common/utils/decorators";

export default {
  name: 'custom_locale',
  initialize(container) {
    const siteSettings = container.lookup("site-settings:main");

    if (!siteSettings.custom_locale_disable_others) return;
    
    withPluginApi('0.11.1', api => {
      api.modifyClass('controller:preferences/interface', {
        @discourseComputed()
        availableLocales() {
            return [
                { value: 'en', name: 'English' },
                { value: 'cust', name: 'My Custom Locale'},
            ]
        }
      });
    });
  }
}

标签功能已按预期恢复,因此我可以确认问题出在插件中。(曾尝试将各种引用从 /tags 修改为 /tag,但未成功。)

2 个赞

您的意思是“从 /tags 改为 /tag……"吗?:slightly_smiling_face:

2 个赞