品牌头部移动菜单在调整窗口大小之前不会完全展开

我们在左上角的品牌页眉菜单在移动设备上点击时仅部分展开,遇到了一个问题。我们已将其设置为不在移动设备上显示该栏。如果我只点击汉堡菜单,它看起来是这样的。

但是,如果我然后向任何方向调整窗口大小,它就会完全展开并显示所有子链接。

如何让它在点击时完全展开,而无需调整窗口大小?

我在论坛上发现,当我只点击汉堡菜单时,“slide-in”类没有添加到“menu-panel”div中。

但是,一旦我调整窗口大小,它就会被添加,菜单也能正常工作。

据我所知,“menu-panel”和“slide-in”不是来自我们的主题。但“slide-in”似乎对使其工作很重要。为什么在打开菜单时,“slide-in”不会被添加?为什么调整浏览器窗口大小会突然添加它?

这是我在移动设备上看到此组件的样子,没有安装其他主题:

我无需调整大小即可获得此效果,并且当我调整大小时,根本不会获得 slide-in 类……

看起来您使用的是 Discourse 3.2 版本,而不是当前的 3.3 版本。此组件有一些更新依赖于 3.3 版本,因此您目前无法获得这些更新。

更新 Discourse 和该组件可能会解决您所有的问题,但如果不能,则可能与其他自定义设置存在冲突。

2 个赞

你说得对,我们正在使用 Discourse 3.2.3。我从这篇帖子中了解到问题也存在于 3.3 版本中,但你的看起来不错。我会检查我们是否可以升级到 3.3,或者也许安装一个旧版本的 brand-header 组件。

有没有地方发布了该组件需要 3.3 版本?我到处都没看到。

你知道那些依赖 3.3 的更新是什么时候做的吗?或者最后一个能与 3.2 兼容的版本是什么?

1 个赞

它没有明确要求,但有时在进行更新时,我们知道依赖于较新的 Discourse 功能,我们会将主题组件固定到旧版本的 Discourse,这将阻止它接收不兼容的更新。

完成此操作后,详细信息将包含在 .discourse-compatibility 文件中:

在这种情况下,您将被固定到哈希值为 12e6f76e0508b262517efd5db2d7feca261dff86 的提交,即 DEV: move widgets to dedicated files, cleanup (#28) · discourse/discourse-brand-header@12e6f76 · GitHub

自那次更改以来,由于 Discourse 头部工作方式的变化,该组件的代码已被完全重构。

我认为这突显了一个值得我们考虑的好问题,这些信息相当隐蔽且技术性强。也许我们可以在管理面板中添加一条消息,说明某些组件已停止接收更新,因为它们需要最新版本 Discourse 的功能。

2 个赞

我 fork 了该组件,将其回滚到 commit 12e6f76,并在我们的论坛上安装了它,但问题仍然存在。这不应该能解决它吗?

不,那是您已经固定的提交,您错过了之后的所有内容。

1 个赞

我一定有什么地方没搞清楚。我们以前没有这个问题。有一次,问题出在组件进行了需要 Discourse 3.3 的更改,我们更新了组件,但我们仍然在使用 Discourse 3.2。是这样吗?如果是这样,最简单的解决方案不就是回滚到与 Discourse 3.2 兼容的最后一个组件版本吗?

该组件不会收到 3.3 的那些更改。当组件固定到特定的 Discourse 版本时,它基本上会保持当前状态,直到 Discourse 更新。

所以你不应该需要这样做……固定应该会自动使其保留在最新兼容的版本上,但有可能这个 bug 已经存在于你正在使用的组件版本中了。

1 个赞

我明白了……很聪明。我们可以合理地假设维护者不会努力让该组件与 3.2 正常工作吗?

我复制了一个论坛并升级到了 3.3,是的,这确实解决了问题。我正在与我们的管理员确认是否有可能将实时论坛升级到 3.3。

谢谢!

1 个赞

是的,不幸的是,我们只有能力维护最新版本 Discourse 的主题组件,因此有时旧版本会出现这种情况。

我们终于成功将实时论坛更新到了 3.3 版本,它突然就能用了。再次感谢!

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