【问题标题】:Backbone routes break on refresh with Yeoman使用 Yeoman 刷新主干路由时中断
【发布时间】:2012-12-15 16:00:43
【问题描述】:

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

我设置了以下路线:

'test' : testMethod,
'' : index

我已经设置了 pushstate:

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

我正在使用 Chrome

如果输入 myApp.com#test,则 url 将更改为 myApp.com/test 并且 testMethod() 会正确触发。

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

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

【问题讨论】:

标签: backbone.js yeoman


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-17
    • 1970-01-01
    • 2021-01-27
    相关资源
    最近更新 更多