【问题标题】:Marionette PushState URL Handeling - How to do it?Marionette PushState URL 处理 - 怎么做?
【发布时间】:2013-02-23 09:52:24
【问题描述】:

我找不到任何关于 Backbone.Marionette 的文章,它使用 pushstate 和 Node.js,或 grunt,或需要对 URL 处理进行认真讨论的地方。例如,用户应该能够将指向内部页面的链接发送给她的祖母并让该链接正常工作。 pushstate 功能似乎特别不适合现实世界。有人可以发表评论并提供一些关于该主题的严肃文章的链接吗?

【问题讨论】:

标签: backbone.js marionette pushstate


【解决方案1】:

一般来说,你真的只需要做两件事......

  1. 通过调用 Backbone.history.start({ pushState: true }); 告诉 Backbone 使用 pushstate。如果您的 Marionette 应用是从 http://example.com/myApp 而非直接在 http://example.com 上提供的,您可能还需要在该参数中添加类似 root: 'myApp' 的内容。
  2. 配置您的网络服务器,以便无论用户请求什么 URL,都会返回相同的内容(您的 Marionette 应用程序)(无需进行重定向)。

问题在于 #2 的实现方式取决于您使用的 Web 服务器类型。而且你还没有告诉我们你在哪个堆栈上。例如,在 ASP.NET 中,这可以通过在 RouteConfig.cs 文件中添加类似内容来设置“catch all”路由来处理:

        // all requests (except those explicitly handled by another route)
        // go to HomeController.Index and then the Backbone router examines
        // the URL client-side to determine client-side what to do
        routes.MapRoute(
            name: "Default",
            url: "{*clientRoute}", // this is wildcard which captures the entire URL
            defaults: new { controller = "Home", action = "Index" }
        );

其他网络服务器堆栈将有不同的方式来实现相同类型的东西。

【讨论】:

  • 我有点怀疑是这样的。感谢您的确认。
  • 不怕,但如果你把它作为一个特定的问题发布,我相信有人可以联系你
猜你喜欢
  • 2012-09-29
  • 2011-12-31
  • 2013-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-31
  • 1970-01-01
相关资源
最近更新 更多