Node-static example



我绞尽脑汁想弄清楚这段代码到底出了什么问题。我直接从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:Projectsnodepublic');
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语句,它使其进入服务器处理程序,但没有进入侦听器处理程序。这是否与"end"事件有关?

我删除了request.addListener('end', ...)函数:

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

我想你有一个窗口路径问题。我无法在我这边验证,但我可以给你两个选项:

1)转义反斜杠:

'C:\Projects\node\public'
2)使用path.join
var path = require("path");
var file = new(static.Server)(path.join(__dirname, "public"));

__dirname为当前文件的路径

此外,您还可以提供一个错误页面:

let static = require('node-static');
let fileServer = new static.Server('C:Projectsnodepublic');
require('http').createServer(function(request, response) {
  fileServer.serve(request, response, function(exception) {
    if (exception && (exception.status === 404)) {
      fileServer.serveFile('/404.html', 404, {}, request, response);
    }
  });
}).listen(8080);

文件404.html应该存在

相关内容

  • 没有找到相关文章

最新更新