2016-12-10 40 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供应整个目录)