2016-12-10 5 views
0

У меня есть следующий код на стороне сервера код:экспресс отправить ошибка файла 404 не найдено

var app = require('express')(); 
var http = require('http').Server(app); 
var io = require('socket.io')(http); 


app.get('/', function(req, res){ 
    res.sendfile('index.html'); 
}); 
app.get('/data/cursor.png', function(res, res) { 
    res.type('png'); 
    res.sendfile('data/cursor.png'); 
}); 

и на стороне клиента, у меня есть следующий код:

<img class="cursor" src="data/cursor.png"> 

и когда я загрузить индекс .html я получаю следующую ошибку: GET http://localhost:3000/cursor.png 404 (не найдено) Почему это происходит? Я также отправляю некоторые другие файлы, такие как javascript-файл и css. и они отлично работают ... так res.sendfile ('js/drawingV2.js'); работает совершенно нормально.

app.get('/js/drawingV2.js', function(res, res) { 
    res.sendfile('js/drawingV2.js'); 
}); 

Может кто-нибудь объяснить мне, что я делаю неправильно? , если вам нужно больше кода, или если я не знаю, PLS, дайте мне знать :)

ответ

0

Вы отправляете пользователю только файл index.html или это то, как Express видит его. Вам нужно отправить весь каталог со всеми файлами пользователю, что и делает express.static.

Предположим, у вас есть общедоступная директория с индексом.html и папкой с данными, с курсором .png.

server.js 

public - 

    index.html 

    data - 

     cursor.png 

А потом -

var express = require('express'); 
var app = express() 
var http = require('http').Server(app); 
var io = require('socket.io')(http); 

app.use(express.static("public")) // serve the whole directory 

и альт! Он должен работать. (express.static обслуживает весь каталог)