2013-05-25 4 views
0

Я новичок в экспресс-продаже, и я также использую опорную плиту. В случае развития, при запросе /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.

Что не так?

ответ

0

Он должен работать, если вы не используете express.static() (который я предполагаю, обрабатывает запросы на /assets/css/index.css, если нет, замените «маршрут, который обработки эти запросы» :) перед тем маршрут (который будет означать, что статическое промежуточное ПО сначала обработает запрос).

Кроме того, вместо того, чтобы ваш switch заявление, вы можете использовать app.configure:

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(...)); 
+0

у меня есть: app.use (express.static (config.root + '/ общественное')); Означает ли это, что я должен использовать: res.sendfile ('dist/debug/index.css'); (без «публичных»)? – Naor

+0

@Naor это зависит от структуры вашего каталога. Я думаю, что 'res.sendfile' найдет файлы по отношению к« текущему рабочему каталогу »(обычно это каталог, в котором вы запустили приложение), если [вы не указали параметр« root »] (http://expressjs.com /api.html#res.sendfile). Но так как вы получали ответ, но не совсем правильный, это означало, что ваш пользовательский 'app.get' вообще не вызывался. Какой мой ответ должен исправить. Если нет, вам нужно предоставить немного больше контекста (например, настройки вашего приложения). – robertklep

Смежные вопросы