当路由不包含前导斜杠时,骨干模型URL将失败

时间:2013-08-30 11:46:02

标签: javascript backbone.js backbone-routing

我的应用程序部署在不在根目录的服务器上:

http://www.myserver.com/myApp/

我在骨干网中设置了一条路由,以便在上面的url的根目录上执行:

routes: {
    '*path': 'index'
}

在我的索引函数中,我设置了一个模型,并在该模型上调用和调用fetch,工作正常。该模型请求url:

http://www.myserver.com/myApp/myData.json

问题是我在没有训练斜线的情况下进入网址:

http://www.myserver.com/myApp

我的应用加载但我的model.fetch()调用失败,因为它尝试从以下位置获取数据:

http://www.myserver.com/myData.json

有没有人有任何想法?

我没有使用pushstate:历史记录中的true和history.start()中的设置root似乎没有做任何事情:

router.init();
Backbone.history.start({ root: '/myapp/' });

据我所知,root参数仅在pushState设置为true时使用。

1 个答案:

答案 0 :(得分:0)

在调用Backbone.history.start()时设置路由的根路径:

Backbone.history.start({ root: 'myApp' });

否则,将假定您网站的根目录。