0

node.js Webサーバー(ubunt)にこのスクリプトを使用しています:

var util = require('util'),
    http = require('http'),
    fs = require('fs');


fs.readFile('htdocs/index.html', function (err, html) {
    if (err) {
        throw err; 
    }       
    http.createServer(function(request, response) {  
        response.writeHeader(200, {"Content-Type": "text/html"});  
        response.write(html);  
        response.end();  
    }).listen(80);
    util.puts('> Server is running');
});

私はスクリプトを次のように開始しています:

forever start server.js

...そしてそれは機能します。

しかし、index.html のような単純な html ファイルを test.html へのリンクとともにアップロードすると、うまくいきません。

スクリプトを停止して開始した場合にのみ機能します。しかし、index.html から test.html へのリンクは機能しません。

4

1 に答える 1

1

あなたがしているのは、ファイルを読み取ってからサーバーを起動することです。つまり、サーバーが実行されている限り、応答は同じままです。index.html の最新バージョンを常に取得するには、すべてのリクエストでそれを読み取る必要があります。

var util = require('util'),
    http = require('http'),
    fs = require('fs');


http.createServer(function(request, response) {
    fs.readFile('htdocs/index.html', function (err, html) {
        if (err) {
            throw err; 
        }

        response.writeHeader(200, {"Content-Type": "text/html"});  
        response.write(html);  
        response.end();  
    });
}).listen(80);
util.puts('> Server is running');

複数のファイルを提供するには、たとえばconnect staticを使用して、静的 Web サーバーをセットアップする必要があります。

var connect = require('connect');
connect.use(connect.static(__dirname + '/htdocs'))
于 2013-10-18T19:01:41.027 に答える