node.js webserver不会重新加载

时间:2013-10-18 18:57:35

标签: javascript jquery html linux node.js

我正在将此脚本用于我的node.js webserver(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的链接不起作用。

1 个答案:

答案 0 :(得分: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'))