2016-12-10 58 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(Not Found) 爲什麼會發生這種情況?我還發送了一些其他文件,如JavaScript文件和CSS。他們工作得很好... so res.sendfile('js/drawingV2.js');工作完全正常。

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

有人可以向我解釋我做錯了什麼? 如果你需要更多的代碼,或者如果我不清楚,請讓我知道:)

回答

0

你只發送你的用戶index.html文件,或者這就是快速看到它。您需要將包含所有文件的整個目錄發送給用戶,這就是express.static所做的。

讓我們假設你有一個目錄,公開,具有的index.html在裏面,一個名爲數據文件夾,裏面有cursor.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供應整個目錄)