我正在尝试在服务器上部署nodeJs应用程序。
我在这样的网址上得到404:socket.io/?EIO=3&transport=polling&t=LcuVjT6 404(Not Found)以及socket.io/?EIO=3&transport=polling&t=LcuVcaN无法加载资源:服务器响应状态为404(未找到)。
我的目录结构:
├── app.js
├── client
│ ├── css
│ │ └── main.css
│ ├── fonts
│ ├── img
│ ├── index.html
│ ├── index.pug
│ └── js
│ └── main.js
├── package.json
app.js
var express = require('express');
var app = express();
var serv = require('http').Server(app);
app.get('/',function(req, res){
res.sendFile(__dirname + '/client/index.html');
});
app.use('/client',express.static(__dirname + '/client'));
serv.listen(8080);
var io = require('socket.io')(serv,{});
io.sockets.on('connection',function(socket){ //code }
index.pug
...
script(src='https://cdn.socket.io/socket.io-1.4.5.js')
script.
var socket = io();
...
我尝试将端口更改为8080,但没有帮助,servername上显示的唯一内容:8080是html和css部分。看起来客户端无法加载socket.io js文件,我试图在我的pug文件的开头设置脚本,但没有运气。
编辑:我的服务器在我的家里,当我浏览到192.168.1.2:8080时,它可以正常工作。我有一个从127.0.0.1:8080到mywebsite.com/sevaho/nodegame/的反向代理,所以这就是它出错的地方。
nginx.conf
#REVERSE-PROXY APP 8080
location ~ /sevaho/nodegame.* {
rewrite (/nodegame)$ / break;
rewrite /nodegame/(.*) /$1 break;
proxy_pass http://127.0.0.1:8080;
proxy_redirect / /nodegame/;
proxy_set_header Host $host;
proxy_set_header Origin http://$host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
}
任何人都能看到问题吗?
答案 0 :(得分:0)
这可能是过时的,但你应该确保端口是免费和开放的。这是我的基本教程的问题,其中端口从80(已打开并准备好)更改为8080,4000和其他可能性。如果不打开您使用的端口,您每次都可能遇到此问题。所以在更改代码之前先检查一下,而有人忘记你必须打开端口,这意味着代码到目前为止无法工作。在我这个问题的测试中我发现了所有可能的教程,并且在这个时候它们都可以完美地运行。只是因为打开了正确的端口。 Node js and Socket.io Problems