【问题标题】:socket.io/socket.io.js cannot be found找不到socket.io/socket.io.js
【发布时间】:2019-01-26 03:02:34
【问题描述】:

我有这个套接字服务器:

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

...

app.listen(3001);

Express 和套接字版本:

"express": "^4.16.3",
"socket.io": "^2.1.1"

我在客户端调用它:

<script src="http://localhost:3001/socket.io/socket.io.js"></script>

当我在 chrome 上运行套接字服务器并打开客户端应用程序时,我收到以下消息:“加载资源失败:服务器响应状态为 404(未找到)”。

我不打算将 socket.io.js 复制到公用文件夹,因为根据 socket.io 文档,这样做不是正确的方法。

也就是说,我做错了什么?

【问题讨论】:

    标签: node.js socket.io


    【解决方案1】:

    可能的修复:

    • 确保您运行 npm install 并且没有错误或安装不完整:

    • 在您的项目目录中,转到./node_modules/socket.io/node_modules/socket.io-client/dist 并复制名为socket.io.js 的文件并将其放入您的staticresources 目录之一。

    别忘了把下面这行放到静态文件中,现在你应该可以在下面浏览它了:http://localhost:3000/resources/socket.io/socket.io.js

     app.use('/resources', express.static('resources'));
    

    如果不固定,这里是一个完整的基本示例,请按照以下步骤操作。

    将以下内容复制粘贴到文件myfile.js

    var app = require('express')();
    var http = require('http').Server(app);
    var io = require('socket.io')(http);
    
    
    
    
    http.listen(3000, function(){
      console.log('listening on *:3000');
    });
    

    运行以下命令:

    $ npm i express --save 
    $ npm i socket.io --save 
    $ node myfile.js
    

    打开浏览器http://localhost:3000/socket.io/socket.io.js

    【讨论】:

    • 我已经做了你说的一切(但没有工作)除了安装 socketio 包一旦 socket.io 文档明确说要使用“npm install --save socket.io”,你可以在@上看到987654323@
    • npm install socketio --save 之后它现在工作了!
    • 这里有一个修复方法,您可以手动将socket.io.js 文件从node_modules 复制到您的静态目录/文件夹中。检查我的更新答案
    • 这也不是正确的答案。正如我所说:“我不打算将 socket.io.js 复制到公共文件夹,因为根据 socket.io 文档,这不是正确的做法。”
    猜你喜欢
    • 2014-06-04
    • 2013-11-06
    • 2013-10-25
    • 2014-10-20
    • 2012-12-24
    • 1970-01-01
    • 2021-02-27
    • 1970-01-01
    • 2012-08-09
    相关资源
    最近更新 更多