为何添加 ENV 未修改客户端站点设置

你好 @sam

也许是我理解错了,或者操作有误?

app.yml 中,我添加了一个自定义环境变量:

env:
   DISCOURSE_MY_ENV_TEST:  app

然后使用一个小型自定义插件重建了容器,并在其中输出了所有站点设置,如下所示:

console.log(Discourse.SiteSettings);

正如预期那样,它顺利地将所有站点设置输出到了控制台;但我之前在 app.yml 中设置的自定义 env 变量似乎并没有生效到站点设置中。

是我操作有误吗?

我之所以这样问,是因为我在搜索如何将环境变量引入应用程序以便在插件中使用时,发现了这个主题。我原本以为你提到的可以通过将它们添加到 app.yml 文件中的方式来实现,但实际效果并不如预期。

附言:抱歉复活了这个旧话题,但在站内搜索后发现它是最接近的匹配项,我认为在这里回复可能比新开一个话题更合适。

1 个赞

你需要为站点设置定义一个插件,这样才行。我们不会盲目地将 ENV 中的内容传递给客户端。

2 个赞

嗨,Sam,

我理解了,应该是这样:

基本上,我们无法在 yml 文件中定义一个新的 env: 变量,并让该 env: 变量被应用中的站点设置所使用,除非我们为此创建一个插件(以便为站点添加一个额外的环境变量,并可通过 yml 文件进行配置)。

我的理解正确吗?

谢谢!

1 个赞

是的,如果您想定义新的站点设置,必须将其添加到插件中。

4 个赞