我正在使用骨干布局管理器,车把和requirejs来使用HtML5的应用程序,它是一个单页应用程序。我正在使用backbone.history.start({ pushState:true })
,如果我输入 URL 作为 localhost:9090/#abc,这有助于摆脱 #,但是如果我在浏览器中粘贴 URL localhost:9090/abc,那么它不会路由到正确的页面,而是转到 app.yaml 中的路由。
在单击事件时,我可以导航到URL localhost:9090/abc,但是当我直接在浏览器中复制粘贴时则无法。
我做了很多研究来解决这个问题,但没有结果。任何建议都会有所帮助。提前致谢
首先,您应该阅读有关 url 中的#
- 片段标识符。简单地说:#
之前的所有内容都在服务器上路由,#
之后的所有内容都在浏览器上的javascript中路由。
因此,当您调用localhost:9090/#abc
服务器时,会在/
上查找资源,我猜这是您的JS应用程序并将其返回到浏览器。然后浏览器执行JS应用程序,该应用程序在#
后检查标识符并决定显示的内容。
我也对你想做什么有点困惑 - 你是否试图摆脱#
同时在JS应用程序中有历史支持?阿法克 这是做不到的。