2013-04-08 2 views
1

Я застрял на разочаровывающей проблеме.expressjs Статические файлы не обслуживаются

Мои статические файлы не обслуживаются экспресс-js, и вместо этого мой глобальный захват всех обработчиков получает удар.

Моя структура каталогов:

node/apps/web/app.js 
-------------/public/ 
--------------------/css/site.css 
--------------------/js/ 
--------------------/img/ 

Моя конфигурация развития

app.configure('development',function() { 

console.log(__dirname); 

// for development, serve static files via express 
app.use(express.static(__dirname + '/public')); 

app.use(express.errorHandler({dumpExceptions: true, showStack: true})); 
}); 
//...later 
app.get('*',route.r404); 

Запрос:

http://192.168.1.101/css/site.css

не удается запустить соответствующий файл CSS.

EDIT TO ADD:

выглядит как что-то делать с уловом по умолчанию все трассы. Если я прокомментирую это, он будет правильно разрешен ...

ответ

2

Если app.use (app.router) находится выше строки app.use (express.static (...)), то маршруты будут превзойти статическую. Ваша строка app.get ('*', ...) является частью маршрутов.

См. Node.js/Express.js - How does app.router work? для получения дополнительной информации.

+0

Спасибо за ссылку. Я проверю это. – Alan

0
var express = require("D:/node/express/modules/express"); 
var path=require("D:/node/express/modules/path"); 
var app = new express(); 
app.get('/',function(req,res){ 
    res.sendFile(path.join(__dirname,'/index.html')); 
}); 
app.get('/about',function(req,res){ 
    res.sendFile(path.join(__dirname,'/about.html')); 
}); 
app.listen(1000); 

var express здесь и var path модули путь здесь вы можете использовать этот простой код для обслуживания статических файлов.

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