0

我正在使用HtML5及其單頁應用程序的骨幹佈局管理器,handlebars和requirejs。我正在使用backbone.history.start({ pushState:true }),這有助於擺脫#如果我輸入URL作爲本地主機:9090 /#abc,但如果我在瀏覽器中粘貼URL localhost:9090/abc,那麼它不會路由到正確的頁面,但會轉到路由在app.yaml。骨幹路由器不工作沒有#在URL中

單擊事件時,我可以導航到URL localhost:9090/abc,但不能在我直接複製粘貼到瀏覽器中時使用。

我已經做了大量的研究來解決這個問題,但沒有結果。任何建議將有所幫助..提前致謝

回答

0

首先,您應該閱讀關於#在url - fragment identifier。簡而言之:#之前的所有內容都在服務器上路由,而#之後的所有內容都在瀏覽器中以javascript路由。

因此,當您撥打localhost:9090/#abc時,服務器會在/上尋找資源,我猜這是您的JS應用程序並將其返回給瀏覽器。瀏覽器然後執行JS應用程序,該應用程序依次檢查#之後的標識符並決定顯示什麼。

另外我有點困惑你想要做什麼 - 你想擺脫#但同時在JS應用程序的歷史支持? Afaik不能這樣做。