我的意思是当我按照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();
答案 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网络服务器。仍然在寻找另一种解决方案,但我想我也会发布这个。