2

只需要知道在您的哈希 url 中有一个前导斜杠是否好。例如,

site.come/#/directore/file/

或者

site.come/#directore/file/

我问这个是因为backbone.js 不推荐他们的文档中的第一个选项(我个人更喜欢第一个选项......),

http://backbonejs.org/#Router-extend

请注意,您需要避免在路由定义中使用前导斜杠

所以我想确定这背后的原因是什么want to avoid using a leading slash

4

3 回答 3

1

如果网站应该公开,我认为这两种方法都不好,因为它会损害 SEO。

Conisder 使用#!google指示人们这样做,以便网站可抓取

于 2013-11-27T07:45:09.877 回答
1

如果您决定使用,我能想到的主要问题(参考这篇文章)是不兼容的Backbone.history.start({pushState: true})

考虑这个设置:

Backbone.Router.extend({
  routes: {
    "/test": "test"
    "test": "test2"
  }
});

historyapi 仍然不是一成不变的,所以它如何处理和调用带有斜杠的路由是不一致的——但你应该期望调用history.pushState('/test')route test。但是,现在如果您在使用哈希回退的浏览器上,它将调用 route /test/。因此,最好完全避免第一个斜杠,因为如果不处理这两种情况,就没有好的方法可以告诉你这将带你去哪里:

app.navigate("/test")

这也是Backbone.js 斜线在回退中哈希后的可能副本 - 历史pushState

于 2013-11-27T07:48:13.357 回答
1

我更喜欢第一个,因为这会使 URL 更干净。甚至 AngularJS 路由系统也更喜欢第一个。像:

site.com/#/directory/file

出于 SEO 的目的,两者都没有任何意义。是的,没错,hitory API#!在他们的 URL 形成系统中使用。

于 2013-11-27T08:01:52.110 回答