URL 中的哈希/锚点阻止后续 URL 更新

在我们基于 Discourse 构建的网站上,有一个独立板块,通过 URL 中的锚点/哈希链接到特定标题,例如:https://mysite.com/my-page#faq

当用户点击此类链接时,URL 会更新为该值,但后续导航时 URL 不再更新。

请问哈希值阻止 URL 更新的原因是什么?这导致我们的应用在点击某些链接(例如 ‘understand.html#understand’)后出现故障。

在任意基于 Discourse 的论坛中也能观察到这一行为,最小可复现示例如下:

  1. 访问 https://meta.discourse.org/
  2. 在 URL 后追加 #foo,即:https://meta.discourse.org/#foo
  3. 点击任意主题,您会看到 URL 并未更新

提前感谢!

我认为这个问题涉及一些 JavaScript 调试,最好交给 @j.jaffeux 处理。

这里的问题是,我们的路由器在某些 URL 中使用了哈希(特别是跳转到帖子的特定部分,我相信 FAQ 也这样做)。我推测,当遇到我们不认识的哈希时,会导致问题,而实际上我们应该能够忽略它。

@eviltrout 我认为这样应该就可以了: