我有以下代码服务器端代码:
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">
当我加载index.html时,我收到以下错误: 获取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');
});
有人可以向我解释我做错了什么吗? 如果您需要更多代码或者我不清楚请告诉我:)
答案 0 :(得分:1)
您只是向您的用户发送index.html文件,或者Express正在看到它的方式。您需要将包含所有文件的整个目录发送给用户,这是express.static
所做的。
假设您有一个目录public,其中包含index.html,以及一个名为data的文件夹,其中包含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提供整个目录)