为什么 history.pushState() 破坏了我的导航功能?
Why is history.pushState() breaking my navigation functionality?
我正在使用 history.pushState()
来显示 URL,它指示当前显示的动态内容(文章)。
如果我 return 查看一些动态内容后转到我的主页 (index.html),然后尝试访问 index.html 以外的其他页面,我的导航 link 坏了。
On mysite.com/articles whenever a new article is chosen I call history.pushState(null, null, '/articles/' + <articleID>);
.正如我所料,这可以正常工作。显示的URL变成mysite.com/articles/articleID.
当前行为:
此时,如果我单击导航 link 返回 index.html
,页面成功更改为 index.html,但显示的 URL 变为我的站点。com/articles/index.html
预期行为
显示的URL应该变成mysite.com或mysite.com/index.
我的问题也是:
- 我使用
history.pushState();
或 的方式
- 我的导航 link 的配置方式?
您的通用重定向方法将所有内容重定向到 /articles/<articleID>
,包括 link 到主页(正如您提到的 ...articles/index.html
)。
虽然您的应用出于某种原因可以解析 articles/index.html
到主页(我不确定为什么)。从现在开始,所有相对 link(不以 /
开头)都将相对于当前路径 - /articles/index.html
.
为了解决这个问题,您应该从通用重定向机制中排除主页 links 并重定向到 /
.
我正在使用 history.pushState()
来显示 URL,它指示当前显示的动态内容(文章)。
如果我 return 查看一些动态内容后转到我的主页 (index.html),然后尝试访问 index.html 以外的其他页面,我的导航 link 坏了。
On mysite.com/articles whenever a new article is chosen I call history.pushState(null, null, '/articles/' + <articleID>);
.正如我所料,这可以正常工作。显示的URL变成mysite.com/articles/articleID.
当前行为:
此时,如果我单击导航 link 返回 index.html
,页面成功更改为 index.html,但显示的 URL 变为我的站点。com/articles/index.html
预期行为
显示的URL应该变成mysite.com或mysite.com/index.
我的问题也是:
- 我使用
history.pushState();
或 的方式
- 我的导航 link 的配置方式?
您的通用重定向方法将所有内容重定向到 /articles/<articleID>
,包括 link 到主页(正如您提到的 ...articles/index.html
)。
虽然您的应用出于某种原因可以解析 articles/index.html
到主页(我不确定为什么)。从现在开始,所有相对 link(不以 /
开头)都将相对于当前路径 - /articles/index.html
.
为了解决这个问题,您应该从通用重定向机制中排除主页 links 并重定向到 /
.