2012-12-15 93 views
2

我正在用Backbone和Yeoman構建應用程序。我遇到了路由問題。骨幹路線與Yeoman一起刷新

我有以下的路線設置:

'test' : testMethod, 
'' : index 

我已經建立了pushState的:

Backbone.history.start({pushState: true}); 

我使用Chrome

如果進入myApp.com#test網址更改爲myApp.com/testtestMethod()正確着火。

但是,如果我嘗試轉到myApp.com/test直接或瀏覽器已經改變了URL從#到/後刷新,然後我得到一個404

我使用內置的服務器自耕農測試的網頁。這是否會導致問題?

+0

[Backbone Routes Not Being Called](可能重複的主幹路由)(http://stackoverflow.com/questions/13794944/backbone-routes-not-being-called) – McGarnagle

回答

3

我不確定您是否在Yeoman內使用BBB。如果你是,這不應該是一個問題。如果您不使用BBB,則這是已知的issue。 BBB有正確的重寫規則來使用pushstate,但yeoman內置的服務器似乎並沒有採用這種方式。您可以使用自己的重寫規則編輯您的grunt.js文件,以使pushstate正常工作。上述鏈接中的一些用戶已成功完成此操作。

當您的應用程序啓用時,您需要通過服務器提供這些網址或編輯您的重寫規則來執行相同操作。如果後者和您的應用程序依賴於搜索引擎優化,搜索引擎優化將受到很大的影響