0

我将这个脚本用于我的 node.js 网络服务器(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

...它的工作原理。

但如果我上传一些简单的 html 文件(如 index.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

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