升级后自定义主题的颜色调色板无法使用

升级到 3.4.0 后,我们的主题不再获取所选调色板的颜色定义。我看到一个 CSS 文件应该包含颜色定义,但在我们的主题处于活动状态时,该文件返回为空。

因此,没有颜色被设置,任何弹出窗口的背景颜色都是透明的,这使得网站无法使用。我们暂时改用默认的浅色主题作为解决方法。

我已经尝试了我能想到的一切。例如:

  • 手动创建调色板
  • 卸载并重新安装主题
  • 在实时论坛和暂存论坛上进行大量试错

我们的主题是从 git 仓库安装的。在短暂的一段时间里,我们通过恢复一个旧的主题开发副本(不是来自 git 仓库)让论坛看起来不错,但下次我们重新启动 Discourse 时,它又会再次中断。

在暂存论坛上,当我卸载并重新安装主题时,似乎解决了问题。但在实时论坛上卸载并重新安装没有帮助。

当我切换到浅色或深色等默认主题时,调色板工作正常,我可以看到该 CSS 文件中定义的所有颜色。

可能是什么原因导致我们的主题的颜色定义返回为空?有什么修复它的想法吗?

这似乎是问题的潜在原因。我们的主题有一个存储关于页面内容的设置。我认为在更新到 Discourse 3.4.0 之前,我们没有 SCSS 编译错误。也许 sass 编译发生了一些变化,现在它更严格了?

但问题似乎发生在 Discourse 启动时。如果我只编辑该主题设置中的内容,则不会记录 SCSS 错误。如果我重新启动 Discourse,就会发生 SCSS 错误,颜色定义 CSS 文件会再次变为空。

这是主题中 hbs 文件里使用该设置的代码。设置中的内容只是 HTML。

<div class="about-description-content">
	{{{theme-setting 'content_about_main'}}}
</div>
1 个赞

我已将 HTML 从主题设置移至 hbs 文件中,这似乎解决了问题。我不确定原因,但 Discourse 3.4.0 不喜欢将其放在主题设置中。

1 个赞

您可能需要在此处添加一个助手:

{{html-safe (theme-setting 'content_about_main')}}

听起来很可能。有没有关于那个 html-safe 辅助函数的文档,我可以看看它的作用?我尝试用谷歌搜索,但找不到相关信息。

好的 https://api.emberjs.com/ember/5.12/functions/@ember%2Ftemplate/htmlSafe

1 个赞

啊,感谢你。我一直在查 handlebars 的文档,而不是 ember。

1 个赞

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.