david
(David Taylor)
1
过去,您可以通过在主题和插件的 templates/ 目录中添加一个同名文件来覆盖 Discourse 路由或组件的 .hbs 模板。这非常强大,但也带来了显著的可维护性问题。
因此,在过去几年中,我们一直不建议进行模板覆盖,并于 2024 年 11 月 正式弃用了模板覆盖。如今,更好的解决方案是使用 包装插件插槽 来渲染核心内容的位置。
本月(2025 年 3 月),我们将为模板覆盖引入管理员警告横幅,并计划在第二季度末前完全移除支持。
时间线
(估计日期 - 可能变更)
升级主题/插件
主题和插件开发者应参考 插件插槽 指南,了解有关包装插件插槽的更多信息。如果您想为您的用例请求新的扩展点,请随时打开 PR 或 Dev 主题。
9 个赞
有什么方法可以轻松查看是哪个主题/插件触发了此管理员通知?我查看了我所有的主题和插件,在它们任何一个的 Git 存储库的根目录中都没有找到 templates/ 目录。
2 个赞
RGJ
(Richard - Communiteq)
3
它在 /assets/javascripts/discourse 或 /javascripts/discourse 中,不在根目录。
2 个赞
david
(David Taylor)
4
警告横幅应显示主题/插件的名称。它也会在浏览器开发者控制台中打印出来。
如果不是这样,那可能是我们与弃用有关,您能否分享一个受影响网站的链接?
谢谢。它没有显示在警告横幅中,但显示在开发者控制台中,尽管不是很清楚。
原来是这个组件。
4 个赞
david
(David Taylor)
7
感谢 @JonahAragon1。主题识别应该比这清晰得多,我会把它修复好的 
2 个赞
您是否找到了恢复 DDG 作为搜索建议的解决方案?我现在已禁用该组件。
不,我只是决定完全禁用该表单。我认为我的社区里没有人使用它,而且我也没有看到它的用处。我看到组件作者提议了一个需要核心更改的更新,所以它可能很快就会再次工作了。
2 个赞
david
(David Taylor)
14
我们已归档 experimental-usercard 存储库,并且不再打算进一步更新该主题组件。因此,恐怕您需要在 2025 年 6 月阻止模板覆盖之前禁用它。
我们确实希望在某个时候将实验的一部分纳入核心,但目前还没有具体的时间表。用户卡是 UI 中一个经过大量定制的部分,因此对其进行重大更改需要仔细规划和跨生态系统的更改。
3 个赞
david
(David Taylor)
15
一切都按计划进行,我们打算在6月2日当周开始移除对模板覆盖的支持。
由于这将在3.5稳定版发布之前发生,我们已将管理员警告横幅反向移植到3.4稳定版,以便稳定版上的社区在更新到3.5之前能得到充分的警告。
(抄送 @RGJ,因为我知道你在稳定版上托管了许多论坛)
4 个赞
nixo
(nixo)
17
我也遇到了这个不明确的错误(只指向“默认”主题)。控制台中的提示很有帮助。我认为这在我们的自定义 CSS 中,但我最近才接管这个论坛,所以需要花点时间研究一下。预计什么时候会出问题,这样我就可以及时安排时间研究了?
david
(David Taylor)
18
Discourse 核心的最新版本已移除模板覆盖,因此您可能运行的是旧版本。下次更新到最新版本时,覆盖将停止工作。
您的默认主题中可能存在类似 \u003cscript type=\"text/x/handlebars\"\u003e 的内容,应将其移除。
1 个赞
nixo
(nixo)
19
嗯。有意思。我们的 DevOps 团队更新到 3.4.6 后,我们才开始看到这个横幅。自定义覆盖仍然在渲染(你说的关于它的位置/外观是正确的)。有可能 ChatGPT 误解了这个覆盖的作用,我还在弄清楚这一切
一切都已修复,警告已消失,样式已保留。太棒了。
1 个赞