【问题标题】:Why is history.pushState() breaking my navigation functionality?为什么 history.pushState() 会破坏我的导航功能?
【发布时间】:2020-08-02 06:33:07
【问题描述】:

我正在使用history.pushState() 显示一个 URL,该 URL 指示当前显示的动态内容(一篇文章)。

如果我在查看了一些动态内容后返回我的主页 (index.html),然后尝试访问 index.html 以外的其他页面,我的导航链接会损坏。

在yssite.com/articles上选择新文章时,我致电history.pushState(null, null, '/articles/' + <articleID>);。正如我所料,这可以正常工作。显示的 URL 变为 mysite.com/articles/articleID。

当前行为:

此时,如果我单击导航链接返回index.html,页面成功更改为 index.html,但显示的 URL 变为 mysite.com/articles/index.html

预期行为

显示的 URL 应该变成 mysite.com 或 mysite.com/index。

我的问题也是这样:

  1. 我使用history.pushState();的方式或
  2. 我的导航链接的配置方式?

【问题讨论】:

  • 你应该使用/而不是'/articles/' + <articleID>重定向到主页
  • 这正是我的问题,谢谢!如果您想重新提交此作为答案,我可以将其标记为正确。对于那些遇到同样问题的人,请将您的链接设置为href="/"

标签: javascript html pushstate


【解决方案1】:

您的通用重定向方法将所有内容重定向到/articles/<articleID>,包括指向主页的链接(正如您提到的...articles/index.html)。

虽然您的应用程序可以将articles/index.html 解析为主页(我不确定为什么)。从现在开始,所有的相对链接(不是以/开头的)都将相对于当前路径-/articles/index.html

为了解决这个问题,您应该从通用重定向机制中排除主页链接并重定向到/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-19
    • 2016-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多