2013-12-06 2 views
0

Используя этот простой статический Node.js сервер https://github.com/jesusabdullah/node-ecstaticПростой сервер статического node.js, никакие внешние загрузки файлов

и не создали запас HTTP сервер

var http = require('http'); 
var ecstatic = require('ecstatic'); 

http.createServer(
    ecstatic({ root: __dirname + '/index.html' }) 
).listen(8080); 

console.log('Listening on :8080'); 

После запуска моего сервера, то index.html правильно загружается, но ни один из моих внешних скриптов или загрузка CSS. Только 404's

Путь верный и все относительно index.html. «JS» папка находится в том же каталоге, что и мой index.html

<script src ="js/foo.js"></script 

Можно ли предположить, почему это происходит?

ответ

2

Вы определяете корневой каталог в своем вызове ecstatic, а не один файл, который вы обслуживаете.

Так предполагается, что ваш Node.js файл находится в том же каталоге, что и index.js, вызов должен выглядеть следующим образом:

http.createServer(
    ecstatic({ root: __dirname }) 
).listen(8080); 

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

0

Изменить <script src ="js/foo.js"></script><script src ="/js/foo.js"></script>. Это работает?

Где находятся ваши внешние скрипты или css?

От ecstatic readme;

app.use(ecstatic({ root: __dirname + '/public' })); 

Это определяет корневую директорию статического сервера, ваше определение корня __dirname + '/index.html' неверно, просто использовать app.use(ecstatic({ root: __dirname }));, если текущая папка содержит все статические активы.

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