我一直在拔头发试图解决这个问题。我有一个在 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