2012-12-15 53 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正常工作。上述链接中的一些用户已成功完成此操作。

当您的应用程序启用时,您需要通过服务器提供这些网址或编辑您的重写规则来执行相同操作。如果后者和您的应用程序依赖于搜索引擎优化,搜索引擎优化将受到很大的影响