Javascript 快速路由到不同的文件

Javascript 快速路由到不同的文件,javascript,node.js,express,backbone-boilerplate,Javascript,Node.js,Express,Backbone Boilerplate,我是express的新手,我也在使用主干模板。在开发过程中,当要求/assets/css/index.css时,我想交付/public/dist/debug/index.css 我做了这个: var env = process.env.NODE_ENV || 'development'; switch (env) { case 'development': app.get('/assets/css/index.css', function(req, res) {

我是express的新手,我也在使用主干模板。在开发过程中,当要求
/assets/css/index.css
时,我想交付
/public/dist/debug/index.css

我做了这个:

var env = process.env.NODE_ENV || 'development';
switch (env) {
    case 'development':
        app.get('/assets/css/index.css', function(req, res) {
            res.sendfile('public/dist/debug/index.css');
        });
        break;
}
但是由于某些原因,我的页面不断得到错误的文件:
/assets/css/index.css


有什么问题吗?

除非您在路由之前使用
express.static()
(我假设它正在处理
/assets/css/index.css的请求;如果没有,则替换为“正在处理这些请求的路由”:)(这意味着静态中间件将首先处理请求)

此外,您可以使用以下语句代替
switch
语句:


我有:app.use(express.static(config.root+/public));这是否意味着我应该使用:res.sendfile('dist/debug/index.css');(不带“public”)?@Naor这取决于您的目录结构。我认为
res.sendfile
会找到与“当前工作目录”(通常是您开始运行应用程序的目录)相关的文件,除非。但是,由于您得到的是响应,但不是正确的响应,这意味着您的自定义
应用程序.get
根本没有被调用。这是我的答案。如果没有,则需要提供更多的上下文(如应用程序设置)。
app.configure('development', function() {
  // this code will only run when in development mode
  app.get('/assets/css/index.css', function(req, res) {
    res.sendfile('public/dist/debug/index.css');
  });
});

// static middleware after your route
app.use(express.static(...));