# 邮件通知模板 GUI 抱怨 %{base\_url}

**URL:** <https://meta.discourse.org/t/email-notification-template-gui-complains-about-base-url/279395>\
**Category:** Bug\
**Created:** [2023 年9 月 18 日 14:36 UTC](https://meta.discourse.org/t/email-notification-template-gui-complains-about-base-url/279395 "2023-09-18T14:36:35Z")\
**Posts on this page:** 1\
**Showing post:** 3

<div class="post-metadata">

作者： ![nordize](https://avatars.discourse-cdn.com/v4/letter/n/c68b51/32.png) [@nordize](https://meta.discourse.org/u/nordize)\
发布日期： [2023 年9 月 18 日 15:58 UTC](https://meta.discourse.org/t/email-notification-template-gui-complains-about-base-url/279395/3 "2023-09-18T15:58:40Z")

</div>

> [@simon](#):
>
> `{base_url}` 不在该列表中。

但它确实有效，即 %{base\_url} 扩展得很好，所以它不是无效的（只是 GUI 会抱怨）。此外，除非硬编码完整的 base URL（这是不允许的），否则无法创建完全有效的链接。

> [@simon](#):
>
> 既然您已经知道您网站的 base URL，我不确定是否需要该密钥。

占位符的总体目的是使软件健壮，其中包括避免硬编码。如果我更改 Discourse 安装的域名、主机名或路径（base\_url 的任何元素），那么我将不得不编辑所有我硬编码模板的地方。这是糟糕的编码实践。

既然我知道 Discourse 开发在其他方面遵循非常健康和健壮的编码实践，我只能假设这是一个疏忽/错误，即 (1) 在验证模板时删除 base\_url，但 (2) 实际上仍然解释它是否存在，并且 (3) 没有提供替代方法来构建一个完全有效的 URL 而不诉诸糟糕的编码实践……

此外，这将是一个重大的向后不兼容的更改，我没有看到任何实际的好处，但它会给用户带来大量的手动工作……这更增加了我将其视为错误/疏忽的理由。

（我还看到了 3.x 版本中引入的其他与文本模板相关的错误，这更增加了我将其视为疏忽的理由）

---

_[View the full topic](https://meta.discourse.org/t/email-notification-template-gui-complains-about-base-url/279395)._
