为什么骨干不会调用简单的路由[及其相应的功能]?

时间:2014-09-01 06:59:04

标签: javascript backbone.js express routes backbone-routing

这是我的路由器:

var MyRouter = Backbone.Router.extend({
    initialize: function(){
        Backbone.history.start({ pushState:true });
    },
    routes: {
        'hello' : 'sayHello'
    },
    sayHello: function(){
        alert('Saying hello');
    }
});

注意,我使用{ pushState:true }提供没有哈希片段的网址。

我还使用Node.js服务器来处理路由:

var express = require('express');
var app = express();
app.use(express.static(__dirname));
app.listen(3010);

当我导航到路线http://localhost:3010#hello时,我的浏览器会将其更改为http://localhost:3010/hello但它运行正常。但是,当我亲自导航到http://localhost:3010/hello时,我收到Cannot GET /hello错误。

这可能有一个简单的答案,但任何人都可以对我可能做错的事情有所了解吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

添加快速路由以处理任何网址片段

app.use('/*', function(req, res) {
   // send your backbone app
   req.sendFile(__dirname + '/index.html');
});