【发布时间】:2015-05-21 08:55:01
【问题描述】:
我正在开发一个应用程序,服务器目前已设置好并且运行良好。
这是您访问服务器时显示的 index.html:
<!doctype html>
<html>
<head>
<title>Socket.IO chat</title>
</head>
<body>
<script src="https://cdn.socket.io/socket.io-1.2.0.js"></script>
<script type="text/javascript" src="./client.js"></script>
<script type="text/javascript" src="./main.js"></script>
</body>
</html>
但是,在导入位于同一目录中的那些 javascript 文件时,我收到 404 错误“加载资源失败:服务器响应状态为 404(未找到)”。
这是我的服务器代码:
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
app.get('/', function(req, res){
res.sendFile(__dirname+'/index.html'); // DO I NEED TO SEND THE OTHER FILES HERE ASWELL?
});
io.on('connection', function(socket){
console.log('a user connected');
socket.on('disconnect', function(){
console.log('user disconnected');
});
socket.on('chat message', function(msg){
console.log('message: ' + msg);
io.emit('chat message', msg);
});
});
http.listen(3000, function(){
console.log('listening on *:3000');
});
谢谢!
【问题讨论】:
-
您是否尝试使用
src="client.js"而不是src="./client.js"?远射,但可能会解决问题。 -
是的,我也试过了。
-
嗯,那么我想您的资源没有通过应用程序公开,在这种情况下,您必须以与 res.sendFile() 类似的方式访问它们。例如,有一种方法可以公开整个目录,但具体方法记不清了。
-
就目前而言,服务器只会在页面被访问时传输 index.html 的内容,没有别的。您可能正在寻找的东西是 express.static
-
express.static 是什么意思?
标签: node.js express socket.io http-status-code-404 server