大家好:
我正在运行一个使用 Bitnami 镜像的 Discourse 容器。我遇到的问题是,所有模板都将 %{base_url} 变量设置为 example.com,而且我似乎无法更改它。
我在 Bitnami 创建了一个支持工单,但在搜索时,我在互联网上找不到任何关于 base_url 变量的信息。
有人能帮我弄清楚吗?我对这个变量感到非常困惑。
Falco
(Falco)
2
我们不支持使用 Bitnami 镜像进行安装。如果您希望获得支持,建议按照标准安装指南安装 Discourse。
1 个赞
我明白了,但这不在基础中,与我的问题无关:%{base_url} 来自哪里,或者它基于什么?我在 Discourse 文档或论坛中都找不到它。
如何将 %{base_url} 从 example.com 更改为我自己的 domainname,以便我的电子邮件模板能如预期地解析?
如果此处的域未正确填充,则表示您的安装可能出现了问题。
如前所述,如果您仍未找到问题所在,遵循标准安装并恢复备份可能会更容易。
1 个赞
我知道,但第一次运行后更改它并不能解决问题,所以我怀疑是否需要从第一次运行开始进行更改,因为我想知道它是否是静态设置此主机(名称)的。
Bitnami 容器在更新时是否也像官方容器一样全新编译 Discourse?
变量似乎定义在这里:
current_hostname 变量在此处设置:
force_hostname 变量在此处的站点设置模板中声明:
由于它是隐藏的,因此无法在管理员设置中更改。与其他站点设置一样,我假设它会存储在数据库中。我搜索了我们实例的数据库转储,发现 force_hostname 未设置,甚至未声明。在我们的官方 discourse 容器 YAML 中,我们分配了 DISCOURSE_HOSTNAME,但我猜这只是一个全局设置,而不是站点设置,所以这似乎是以不同的方式强制执行的。
current_hostname 似乎是从当前连接获得的,即动态的。但我看不到它确切的定义位置,可能是外部模块/gem:
我不确定 Bitnami 容器如何处理 DISCOURSE_HOST 设置,所以至少你可以搜索数据库中的 force_hostname,直到我们弄清楚官方容器中的 DISCOURSE_HOSTNAME 是如何存储和强制执行的。
感谢您到目前为止的支持!与您的发现相比,我也在考虑将我的安装配置为单个多站点。这也许能解决问题,但确实是试图弄清楚一些事情,我感觉 Bitnami 没有对 Discourse 本身做任何更改;所以为什么会出现这个问题。\n\n我需要检查我的转储。
好的,目前我无法理解 Discourse 容器的两种变体是如何在内部根据容器 YAML 应用主机的。
Bitnami 容器组合不包含另一个 Web 服务器,而是直接暴露 Discourse Web 端口吗?官方容器在 Discourse 前面有另一个 Nginx,这正是我希望尽可能摆脱的,因为我们已经有一个在容器外的 Apache Web 服务器。