我一直在拔我的头发试图解决这个问题。我有一个在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并且出现了'welcome to socket.io'消息,所以我知道它正在运行....
路径
node_modules:/home/alex/node_modules/socket.io
我的节点应用:/home/alex/documents/project/app.js
答案 0 :(得分:1)
我遇到了同样的问题,似乎原因是在socket.io的安装过程中出现了问题。
实际上,我找到的唯一解决方法是创建一个新目录,在那里复制所有代码并重新安装Express和socket.io模块:
npm install express socket.io
也许我很幸运,但它确实有效!