骨干路线与Yeoman一起刷新

时间:2012-12-15 16:00:44

标签: backbone.js yeoman

我正在使用Backbone和Yeoman构建应用程序。我遇到了路由问题。

我设置了以下路线:

'test' : testMethod,
'' : index

我已经设置了pushstate:

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

我正在使用Chrome

如果输入myApp.com#test,则网址更改为myApp.com/testtestMethod()正确触发。

但是,如果我直接尝试转到myApp.com/test或在浏览器将网址从#更改为/后刷新,那么我会得到404.

我使用Yeoman内置服务器来测试页面。这会导致这个问题吗?

1 个答案:

答案 0 :(得分:3)

我不确定你是否在Yeoman中使用BBB。如果你是,这应该不是问题。如果您没有使用BBB,这是一个已知的issue。 BBB正确设置了重写规则以使用pushstate,但是yeoman内置的服务器似乎并没有采用这种方式。您可以使用自己的重写规则编辑grunt.js文件,以使pushstate正常工作。上述链接中的一些用户已成功完成此操作。

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