Backbone.js URL 路由

Posted

技术标签:

【中文标题】Backbone.js URL 路由【英文标题】:Backbone.js URL Routing 【发布时间】:2011-10-22 01:33:15 【问题描述】:

在backbone.js 上设置路由时,框架似乎会自动为其添加#。即

routes :  "example/:id" : "handler" ,

将匹配 www.example.com/#example/123 的链接

是否可以稍后在网址中添加主题标签?我实际上是在尝试将我的应用程序构建为 www.example.com/text/#example/123(注意 # 之前的 text/)。

有没有在不改变backbone.js框架本身的情况下这样做?

【问题讨论】:

【参考方案1】:

如果您的服务器将包含您的应用的页面提供给www.example.com/text,那么主干路由器将处理像www.example.com/text#example/123 这样的网址。在 www.example.com/test/ 上提供您的页面可能是不可取的(即使您的服务器支持它),因为该 url 表明它是一个文件夹,而不是特定页面。

主干路由器几乎忽略了 baseurl(除了存储它并将其与 pushState 和 popState 一起使用),因此您可以在任何您想要的 url 上提供您的页面。

希望 htis 有所帮助。

【讨论】:

我确实设法通过你提到的 URL www.example.com/text#example/123 让它工作,但它一点也不漂亮,我希望我能让斜线在那里工作.我有自己的内部路由,用于服务器 www.example.com/test,这是应用程序所必需的。无论如何,我可以指定 baseurl 以包含 www.example.com/text 而不仅仅是域本身? 如果不修改主干代码库,我认为您无法实现您的建议。

以上是关于Backbone.js URL 路由的主要内容,如果未能解决你的问题,请参考以下文章

Backbone JS - 路由器问题 - 如何获得干净的 URL

Backbone.js:未达到路由器回调

Backbone.js:查看状态和路由

Backbone.js - 导航时出现 404 jQuery 错误

Backbone.js:在视图之间导航 - 销毁和重新创建

Backbone.js 和 Backbone 实现的最佳 URL 结构