1

我一直在拔头发试图解决这个问题。我有一个在 Windows 中运行良好的 node.js 应用程序。我将所有内容压缩并放在我的 linux 机器(Ubuntu 12)上并通过 npm 安装了所有库,但我仍然收到一条 404 消息,提示找不到我的 socket.io.js 文件。我尝试了各种解决方案,例如链接到 cdn.socket.io 脚本,但这只会引发“require not found”错误。我的html中的代码如下:

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

我什至试过<script src="localhost:4000/socket.io/socket.io.js"></script>

这是我的服务器端:

var express = require('express');
var app = express.createServer();
var io = require('socket.io').listen(app);
...
app.listen(4000);
console.log('server started');

这个问题很相似,但是它的答案只是一个更新的表达语义,它不应该适用于我的代码:socket.io.js not found

如果我的理解是正确的,那么脚本路径应该可以工作,因为当 socket.io 运行时,它应该将该请求定向到正确的路由。我真的不知道我还应该寻找什么来修复,这可能是 Ubuntu 中的路径吗?任何帮助将不胜感激!

刚刚测试了这个:

var io = require('socket.io').listen(8000);

转到 localhost:8000 并显示“欢迎使用 socket.io”消息,所以我知道它正在运行....

路径
node_modules:/home/alex/node_modules/socket.io
我的节点应用程序:/home/alex/documents/project/app.js

4

1 回答 1

1

我遇到了同样的问题,似乎原因是在安装 socket.io 期间出现了问题。实际上,我发现的唯一解决方法是创建一个新目录,将所有代码复制到那里并重新安装 Express 和 socket.io 模块:
npm install express socket.io
也许我很幸运,但它奏效了!

于 2012-07-01T21:41:49.230 回答