socket.io 图片目录不工作
socket.io image directory not working
我复制了示例服务器代码:
var app = require('http').createServer(handler)
var io = require('socket.io')(app);
var fs = require('fs');
app.listen(80);
function handler (req, res) {
fs.readFile(__dirname + '/index.html',
function (err, data) {
if (err) {
res.writeHead(500);
return res.end('Error loading index.html');
}
res.writeHead(200);
res.end(data);
});
}
当我访问图像目录中的某个图像文件时,它没有向我显示图像。如何实现?如果我尝试任何地址,总会有 index.html.
的内容
您的 node.js 服务器 hard-coded 仅 return 一个文件 index.html
,无论浏览器请求的是什么文件。因此,当浏览器请求可能在 index.html
中引用的图像时,您的代码将再次发送回 index.html
。
请记住,node.js 服务器默认不提供任何文件。因此,您希望它提供的所有文件都必须专门编码,或者您可以使用一些帮助程序(如 Express.static()
)来提供整个静态文件目录。
另外,socket.io 与提供图像文件没有任何关系,所以我不清楚您为什么在问题标题中将这两个主题联系在一起。
仅供参考,如果您将 Express 框架用于您的网络服务器,那么您可以使用 Express.static()
通过一行代码为整个目录的图像文件提供服务。有关详细信息,请参阅 Express doc。
我复制了示例服务器代码:
var app = require('http').createServer(handler)
var io = require('socket.io')(app);
var fs = require('fs');
app.listen(80);
function handler (req, res) {
fs.readFile(__dirname + '/index.html',
function (err, data) {
if (err) {
res.writeHead(500);
return res.end('Error loading index.html');
}
res.writeHead(200);
res.end(data);
});
}
当我访问图像目录中的某个图像文件时,它没有向我显示图像。如何实现?如果我尝试任何地址,总会有 index.html.
的内容您的 node.js 服务器 hard-coded 仅 return 一个文件 index.html
,无论浏览器请求的是什么文件。因此,当浏览器请求可能在 index.html
中引用的图像时,您的代码将再次发送回 index.html
。
请记住,node.js 服务器默认不提供任何文件。因此,您希望它提供的所有文件都必须专门编码,或者您可以使用一些帮助程序(如 Express.static()
)来提供整个静态文件目录。
另外,socket.io 与提供图像文件没有任何关系,所以我不清楚您为什么在问题标题中将这两个主题联系在一起。
仅供参考,如果您将 Express 框架用于您的网络服务器,那么您可以使用 Express.static()
通过一行代码为整个目录的图像文件提供服务。有关详细信息,请参阅 Express doc。