0

我正在为我的 HtML5 应用程序及其单页应用程序使用主干布局管理器、把手和 requirejs。我正在使用backbone.history.start({ pushState:true })这有助于摆脱 # 如果我将 URL 键入为 localhost:9090/#abc 但是如果我将 URL localhost:9090/abc 粘贴到浏览器中,那么它不会路由到正确的页面,而是会转到应用程序.yaml。

在单击事件中,我能够导航到 URL localhost:9090/abc,但当我直接在浏览器中复制粘贴时不能。

我做了很多研究来解决这个问题,但没有结果。任何建议都会有所帮助..提前谢谢

4

1 回答 1

0

首先,您应该阅读有关#in url -片段标识符的信息。简而言之:#在服务器上路由之前的所有内容,#在浏览器上通过javascript路由之后的所有内容。

因此,当您调用localhost:9090/#abc服务器查找资源时/,我猜这是您的 JS 应用程序并将其返回给浏览器。浏览器然后执行 JS 应用程序,它反过来检查标识符#并决定显示什么。

另外,我对您要做什么感到有些困惑-您是否要摆脱#但同时在 JS 应用程序中具有历史支持?Afaik 这是做不到的。

于 2013-10-09T06:35:08.017 回答