3 个帖子已拆分为新主题:主题组件中新 Fontawesome 6 图标的麻烦
@awesomerobot 我已尽我(有限)能力遵循了您帖子中的说明,并且遇到了一些问题,我认为其中只有一个与 Font Awesome 图标的更改有关。但我们在此处理它。
这是控制台中发生情况的屏幕截图:
关注弃用通知,似乎“search”图标是一个问题,新图标名为“magnifying-glass”。在开发人员工具的搜索功能中搜索“search”(不出所料)会返回许多结果 -(278 个文件中匹配 6,504 行)- 我真的无法从中找到重点。但我可以说,您原始帖子第三段中显示的那些结果根本没有出现!
如果您能提供有关如何查找导致此问题的组件的建议,我将不胜感激!
我稍后将在另一篇帖子中发布有关 emberjs 问题的内容。
谢谢 - Discourse 通常很简单,但这让我感到困惑。
啊是的,这不太理想 ![]()
如果关闭 JS 和 CSS 源代码映射,则可以帮助减少结果中的文件数量。然后,您可以查找主题中的任何特定结果。
是的,我们确实安装了搜索横幅,并且它是在一段时间前由某人定制的。我现在就来看看。
好眼力,谢谢!
补充说明:
好的,我看到我们需要在 <search-icon.gjs> 中添加一个新行:
@icon="magnifying-glass"
我已经通过导出组件下载了该文件,但我该如何上传修改后的文件?
(我猜我不能,因为我们的 Discourse 社区是由 Discourse 托管的,对吧?)
我在 Discourse 中也看不到任何更新按钮——我应该重新安装该组件吗?
您可以在大多数托管计划上安装自定义主题组件
谢谢,我已经多次阅读了所有链接的文档。
我没有看到任何更新按钮,正如 @Arkshine 的帖子中所述:
我的组件面板看起来是这样的:
此页面上唯一的按钮是页面下方的“安装”。假设我重新安装主题,我们所有的自定义内容都会被覆盖。
我很感激我(可能)显得有点迟钝
但我在 Discourse meta 上看到的内容似乎没有反映在我们自己的 Discourse 实例上。
感谢您的耐心。
看起来您手动上传了原始主题组件的修改版本。
如果它是从 GitHub 存储库链接安装的,您会看到一个按钮。(作者也将是 Discourse)
是的,您必须重新安装更新后的组件。您可以使用“设置编辑器”按钮来导出/导入您的设置。
您还记得您做了哪些自定义吗?如果只是 CSS,我建议您使用官方版本,并将 CSS 自定义添加到您的主题或单独的主题组件中。这样,您将始终获得最新更新。
我删除了现有主题并从 GitHub 存储库重新安装,一切都正常了。网站看起来和以前一样,关于 FontAwesome 的通知也消失了。而且主题现在将自动更新。
再次感谢!
查看日志。我认为它显示了一个或多个图标正在使用旧名称。如果其中一个可以由管理员更改,则不会显示该组件的名称。
非常感谢 @Jagster
我找到了这个控制台日志
Deprecation notice: The icon name "undo" has been updated to "arrow-rotate-left". Please use the new name in your code. Old names will be removed in Q2 2025. [deprecation id: discourse.fontawesome-6-upgrade] [info: https://meta.discourse.org/t/325349]
但不确定在哪里更新这个图标。
请确认您的所有插件/组件都已是最新版本?
是的,都已更新。
昨天刚更新。
使用安全模式,您可以确定问题是来自插件还是主题组件?
我理解重命名是由你无法控制的上游项目强加的,但为什么不能永远保留兼容性映射呢?它们带来什么危害?
有没有人在研究Discourse或其依赖项时理解已发布API的概念,而该API被其他人使用?
除非有非常充分的理由,否则你不会破坏API。仅仅是内部开发人员看到的事物的名称不完全符合某些人的心意,并不足以成为破坏其他人代码的理由。
我真的越来越厌倦为了防止现有事物与Discourse一起破坏而需要做的大量工作。如果有一项改变游戏规则的改进可以证明每次都要花费时间和麻烦是值得的,那还可以,但实际上从未有过。感觉这些破坏性变化总是因为琐事而进行,没有考虑到它们给其他人带来的时间和麻烦。
抱歉给您带来不便,我们努力使这些更新变得简单,并提供数月的时间来完成它们——但这总是有取舍的。如果我们无限期地保留重映射,我们已经会有多个层级的重映射,从 V4 → V5 → V6,这将产生需要自身理解和维护的债务。如果我们为每一段代码都这样做,Discourse 将会更大,更难理解和使用。
是的,这就是为什么我们提供弃用警告和更新说明。我们不仅仅是更新一个文件然后把所有工作都推给您——每次我们进行这样的更新时,我们都必须编写文档、警告系统,并亲自更新数百个主题、主题组件和插件。对于 Ember 更新,我们的工程师已经想出了全新的系统,以使遗留的自定义成为可能。
即使是大得多的软件公司也会以破坏性的方式更新其 API。我至少需要因 API 更改而更新我们的 Google Fonts 组件 2 次,而 Google 的市值约为两万亿美元。我们集成的每一个用于登录的身份验证服务都要求我们因 API 更改而进行更新。
如果您没有时间进行偶尔的维护,那么我建议尽可能减少自定义。如果您使用 Discourse 的现成主题/组件/插件,那么大多数情况下我们会免费更新它们。
您也可以避免更新 Discourse,但一切总会改变,您最终会面临新的安全问题或浏览器兼容性问题。每个选项都有成本和取舍。
然而,为 Windows 95 编写的程序在 30 年后仍然可以未经修改地使用。所以这是可能的。
仅仅因为其他公司选择了捷径,并不意味着你也不必这样做。这是一个选择。
这是一个受限于在现实中运作的选择,现实带来了大量关于时间和预算的权衡。我们不需要偏离到“技术上一切皆有可能”的离题。
话虽如此,Discourse 的好处在于它是免费且开源的——所以如果你想运行一年前或十年前的版本,你当然可以这样做,但这很可能会带来比解决问题更多的问题。
感谢 @Arkshine
通知已自动消失。
今天再次找到它,然后检查浏览器控制台,我找到了图标的名称,在更新它们之后,通知就消失了。



