2015-03-21 3 views
2

Я вроде нового, чтобы выразить, в моем сервере:Как правильно загрузить изображение с помощью статического промежуточного ПО Express?

app.use(express.static(path.join(__dirname, 'includes'))); 

В моем клиенте Javascript я просто давая URL:

var img = $("<img />").attr('src', 'http://localhost:3000/includes/images/img.png'); 
$(".logo-container").append(img); 

, но по-прежнему получать 404

+0

Ваше изображение существует в каталоге под названием 'images'? – thefourtheye

+0

да, я тоже попробовал с другим изображением в этой папке, но все же – shmnsw

ответ

1

Цитирование примера с express.static documentation,

Подавать статический контент для приложения из public каталога в каталоге приложения:

// GET /style.css etc 
app.use(express.static(__dirname + '/public')); 

Как пример показывает,

  1. при монтировании static промежуточного программного обеспечения без какого-либо явного пути, он будет установлен в корневом каталоге и

  2. Адрес, который вы передаете express.static, является местоположением на сервере, а не частью URL-адреса.

Таким образом, вы должны получить доступ изображения без /includes как этот

var img = $("<img />").attr('src', 'http://localhost:3000/images/img.png'); 
$(".logo-container").append(img); 

Или, если вы хотите получить доступ к нему с includes, вам необходимо изменить регистрацию, как этот

app.use('/includes', express.static(path.join(__dirname, 'includes'))); 
+0

Теперь я понимаю, спасибо. Кстати, он так же работал без root /: app.use (express.static (__ dirname + 'public')); – shmnsw

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