4

このコードの何が問題なのかを突き止めようと、頭を壁にぶつけてきました。node-static github リポジトリの例から直接コピーしましたが、うまくいかないようです。私が行った唯一の変更は、公開ファイルのパス (以前は「./public」) でした。パブリック フォルダーに index.html がありますが、ヒットしても何も表示されhttp://localhost:8080/index.htmlません。

var static = require('node-static');

//
// Create a node-static server instance to serve the './public' folder
//
var file = new(static.Server)('C:\Projects\node\public');

require('http').createServer(function (request, response) {
    request.addListener('end', function () {
        //
        // Serve files!
        //
        file.serve(request, response);
    });
}).listen(8080);

問題があれば、Windows 7 64 ビットで Node.js を実行しています。

編集:

いくつかのステートメントを投げたconsole.logところ、サーバー ハンドラーにはなりましたが、リスナー ハンドラーにはなりませんでした。これは「終了」イベントと関係がありますか?

4

3 に答える 3

13

関数を削除しましたrequest.addListener('end', ...)

require('http').createServer(function (request, response) {

    //
    // Serve files!
    //
    file.serve(request, response);

}).listen(8080);

今では正常に動作します。

于 2013-04-05T09:19:35.780 に答える
1

Windowsパスに問題があると思います。こちら側で確認することはできませんが、2 つのオプションを提示できます。

1) バックスラッシュをエスケープします。

'C:\\Projects\\node\\public'

2) path.joinを使用する

var path = require("path");
var file = new(static.Server)(path.join(__dirname, "public"));

__dirname現在のファイルのパスです。

于 2013-03-14T22:46:16.897 に答える