1

私はこの問題を理解しようとして髪を抜いてきました。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

4

1 に答える 1

1

同じ問題が発生しましたが、socket.ioのインストール中に問題が発生したことが原因のようです。実際、私が見つけた唯一の回避策は、新しいディレクトリを作成し、そこにすべてのコードをコピーして、Expressモジュールとsocket.ioモジュールのフレッシュインストールを実行する
こと
でした。

于 2012-07-01T21:41:49.230 に答える