2013-04-13 2 views
4

Я пытаюсь сделать az приложение ExtJS с сервером Node.js. Мой код сервера в настоящее время выглядит следующим образом:Node.js, отправляющий html-файл, не загружает связанные файлы (css, js)

var express = require('express'); 

var app = express(); 

app.get('/', function (req, res) { 
    res.sendfile(filedir + '/index.html'); 
}); 

app.get('/employees', function(req, res){ 
console.log("hello"); 
}); 

app.listen(3000); 

Когда я открываю локальный: 3000 в браузере, HTML файл загрузки, но не правильно. Проверка в firebug Я вижу, что он не может найти связанные файлы в html. Например,

"NetworkError: 404 Not Found - http://localhost:3000/ext-4/ext-debug.js". 

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

Я, очевидно, что-то делаю что-то неправильно или что-то не хватает, я совершенно новый в узле.

Спасибо!

ответ

5

не ли похоже, что вы настраиваете обработчик статических файлов Express.

Попробуйте добавить этот код:

app.configure(function() { 
    app.use(express.static(path.join(__dirname, 'public'))); 
    app.use(express.bodyParser()); 
    app.use(express.logger("short")); 
}); 

Он будет идти сразу после var app = ..., как это:

var express = require('express'); 

var app = express(); 
app.configure(function() { 
    app.use(express.static(path.join(__dirname, 'public'))); 
    app.use(express.bodyParser()); 
    app.use(express.logger("short")); 
}); 

app.get('/', function (req, res) { 
    res.sendfile(filedir + '/index.html'); 
}); 

app.get('/employees', function(req, res){ 
    console.log("hello"); 
}); 

app.listen(3000); 

А затем поместить ваши статические файлы в каталоге ./public.

+0

path.join не работает, «путь не определен». Но anyhoo, я модифицировал эту часть, чтобы удовлетворить мои потребности, и работал отлично. Спасибо большое! – Zuller

+2

'var path = require ('path') ; ' – generalhenry

3

Вы хотите использовать некоторые статические промежуточное программное обеспечение, такие как: http://www.senchalabs.org/connect/static.html

примечание экспресс наследуется подключения, так что вы можете

app.use(express.static(filedir)); 

Или полная вещь:

var express = require('express'); 

var app = express(); 

app.use(express.static(filedir)); 

app.get('/employees', function(req, res){ 
    console.log("hello"); 
    res.send("hello"); 
}); 

app.listen(3000); 
Смежные вопросы