1

「/js/」から始まる1種類のクライアント要求を管理しています。これは、サーバー側のルートフォルダーを意味するか、さらに使用するために「/ public /js/」に配置される可能性があります。さて、問題は私がこのメッセージを受け取ったことです:

//server side
GET /js/socket.io/socket.io.js 304 7ms  

// client side 
Uncaught ReferenceError: require is not defined     
Uncaught ReferenceError: io is not defined 

[x]ソース

// index.html
<script src="/js/socket.io/socket.io.js"></script>

// app.js   
app.get('/js/*', function (req, res) {
    res.sendfile(__dirname + req.url.substr('/js'.length));
});

しかし、固定パスに変更すると機能します。

[o]ソース

// index.html
<script src="/socket.io/socket.io.js"></script>

// app.js   
app.get('/socket.io/socket.io.js', function (req, res) {
    res.sendfile(__dirname + '/socket.io/socket.io.js');
});

ちょっと変ですね。誰かが間違ったplzがどこにあるかを理解できますか?

どうもありがとう。

4

2 に答える 2

0

その応答の正確な問題は何ですか?

304ステータス コードはを意味します。これは、サーバーが のキャッシュ バージョンをブラウザに再度送信する代わりにNot modified、ブラウザが のキャッシュ バージョンを使用できることを意味します/js/socket.io/socket.io.js(したがって、帯域幅が節約されます)。

于 2013-02-19T10:27:16.890 に答える
0

アプリケーションで socket.io が必要な場合、/socket.io/socket.io.js( source ) のリクエストをインターセプトするハンドラーが設定されます。これが、2 番目の例が機能する理由です。

実際、次の行を削除できますapp.js

app.get('/socket.io/socket.io.js', function (req, res) {
  res.sendfile(__dirname + '/socket.io/socket.io.js');
});
于 2013-02-19T17:40:09.043 に答える