私はこの問題を理解しようとして髪を抜いてきました。Windowsで正常に動作するnode.jsアプリがあります。すべてを圧縮してLinuxボックス(Ubuntu 12)に配置し、npmを介してすべてのライブラリをインストールしましたが、socket.io.jsファイルが見つからないという404メッセージが表示されます。cdn.socket.ioスクリプトにリンクするなど、さまざまな解決策を試しましたが、「requirenotfound」エラーがスローされます。私の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が見つかりません
私の理解が正しければ、socket.ioが実行されているときに、その要求を正しいルートに転送する必要があるため、スクリプトパスは機能するはずです。修正のために他に何を調べるべきか本当にわかりません、それはUbuntuのパスに何かあるのでしょうか?どんな助けでも大歓迎です!
これをテストしました:
var io = require('socket.io').listen(8000);
localhost:8000に移動すると、「welcome tosocket.io」メッセージが表示されたので、実行中であることがわかります。
パス
node_modules:/home/alex/node_modules/socket.io
私のノードアプリ:/home/alex/documents/project/app.js