如何在本地测试Backbone Router Hashing?

时间:2016-01-19 14:19:55

标签: javascript backbone.js

我的意思是当我按照cdnjs教程设置哈希路由时,假设测试就好像页面是在某处托管的(即mywebsite.com/#/posts/23/)而我当前在本地托管它,所以我的地址看起来像file:///C:/Folder/index.html

我的问题是如何使用该方法正确测试此哈希路由。我试过像file:///C:/Folder/index.html/#/posts/23那样追加当前的文件路径,但这没有做任何事情。也许我的代码是主要问题;但是,它基本上是cdnjs提供的副本。该代码适用于初始页面(即我通过默认路由获取空操作警报),因此我知道该工作的效果。

路由器代码:

var AppRouter = Backbone.Router.extend({
    routes: {
        "posts/:id": "getPost",
        "*actions": "defaultRoute"
    }
});

var app_router = new AppRouter;

app_router.on('route:getPost', function(id) {
    alert("get post number " + id);
});

app_router.on('route:defaultRoute', function(actions) {
    alert(actions);
});

Backbone.history.start();

2 个答案:

答案 0 :(得分:1)

我建议使用简单的节点服务器来提供索引路由。

尝试使用serve

$ npm install -g serve

然后你可以cd到proj根目录,并运行:

$ serve .

默认情况下我认为它在http://localhost:3000投放,因此您想将浏览器指向那里。

修改

简短的回答是,您需要使用网络服务器提供文件,您使用的是您的选择,但正如您所说,您将无法使用绝对文件路径。

答案 1 :(得分:0)

显然Backbone无法使用file///网址正常运行。请参阅此答案:Routers apparently doing nothing locally in Backbone.js

答案是使用Apache;但是,这对我没有特别的帮助,因为我无法使用Apache网络服务器。仍然在寻找另一种解决方案,但我想我也会发布这个。