2

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

我设置了以下路线:

'test' : testMethod,
'' : index

我已经设置了 pushstate:

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

我正在使用 Chrome

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

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

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

4

1 回答 1

3

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

当您的应用程序上线时,您将需要通过您的服务器提供这些 url,或者编辑您的重写规则以执行相同的操作。如果是后者,并且您的应用程序依赖于 SEO,那么 SEO 将受到很大影响。

于 2012-12-16T06:03:04.640 回答