Javascript 无法加载资源套接字.io

Javascript 无法加载资源套接字.io,javascript,node.js,socket.io,Javascript,Node.js,Socket.io,我试图在node.js应用程序中使用in socket.io,但我的客户端无法从我的服务器获取库,我不知道为什么 错误:加载资源失败:服务器响应状态为404(未找到) 服务器站点: var express = require('express'); var app = express(); var http = require('http').Server(app); var io = require('socket.io')(http); app.us

我试图在node.js应用程序中使用in socket.io,但我的客户端无法从我的服务器获取库,我不知道为什么

错误:加载资源失败:服务器响应状态为404(未找到) 服务器站点:

    var express = require('express');
    var app = express();
    var http = require('http').Server(app);
    var io = require('socket.io')(http);

    app.use(express.static('public'));

    app.get('/', function (req, res) {
      res.sendFile( __dirname + "/" + "index.html" );
    });

    app.listen(3000, function () {
      console.log('Example app listening on port 3000!');
    });

    io.on('connection', function(socket){
      console.log('a user connected');
    });
客户端:

<head>
    <link rel="stylesheet" href="/stylesheets/style.css" />
    <script src="/socket.io/socket.io.js"></script>
    <script>
      var socket = io();
    </script>
</head>

var socket=io();

您的index.html代码找不到socket.io,因为您只发送index.html进行响应。请尝试以下代码

使用以下代码:

//"client" is folder for client code which contains index.html
    app.use(express.static(__dirname + '/client'));
删除以下代码。Node.js将自动查找index.html

 app.get('/', function (req, res) {
  res.sendFile( __dirname + "/" + "index.html" );
});
更改index.html 新代码:

<script src="https://cdn.socket.io/socket.io-1.3.7.js"></script>

旧代码:

<script src="/socket.io/socket.io.js"></script>

我不知道您的代码不工作的确切原因,但是如果socket.io安装正确,那么它会在Express中自动配置一个路由,以满足
/socket.io/socket.io.js
的请求。因此,显然socket.io在您的情况下没有正确配置/安装

我可以告诉您,Express和socket.io的初始化工作正常,没有您提到的问题:

var express = require('express');
var app = express();
var server = app.listen(80);
var io = require('socket.io')(server);

在学习Node.js时,我在index.html中遇到了同样的问题。 控制台提示了类似的错误


我通过在我的项目目录中执行
npm r socket.io
删除了socket.io模块,并使用
npm I socket.io
重新安装了它,然后它工作正常。

您在项目中安装了socket.io吗?是的,我安装了socket.io服务器端socket.io库自动公开客户端socket.io.js的路由文件如果服务器端库是随node.js一起安装的,那么这个路由将为您提供文件,它将从node_modules层次结构中的目录中提供文件(您不必担心)。因此,这个答案并不能以任何方式解决OP的问题。