如何将骨干路由器应用于完整路径,而不是哈希

Val*_*sin 11 javascript coffeescript backbone.js

这种可能性存在吗?我们的网站不是一个页面,而是所有压缩的js文件application.js,我可以使用骨干路由器进行location.path解析吗?

我试试Backbone.history.start(pushState: true).它适用于我,但它是否正确?我只需要初始解析,而不是复杂的路由和重定向Backbone.Router.

tko*_*one 13

您可以使用标准路由器.当您实例化它并启动历史记录对象时,您可以设置它应该用作其基础的根目录.在这种情况下,似乎你想使用'/'

var MyRouter = Backbone.Router.extend({
    routes: {
        "application/": "somefunc"
    }
}

var app = new MyRouter();
Backbone.history.start({pushState: true, root: '/'});
Run Code Online (Sandbox Code Playgroud)

每当在服务器上调用任何目录时,您都需要将Web服务器设置为提供HTML文件(因此主干,而不是rails,将处理您的路由).

最后,在HTML文件中,我有一个在Dom上运行的函数,它将路径拉出URL并传递给它navigate.

var path = location.pathname;
app.navigate(path, {trigger: true});
Run Code Online (Sandbox Code Playgroud)