一尘不染

有没有办法通过Express提供静态HTML文件而无需扩展名?

node.js

我想在不指定扩展名的情况下提供html文件。没有定义路线,有什么办法可以做到这一点?例如代替

 /helloworld.html

我只想做

 /helloworld

阅读 334

收藏
2020-07-07

共1个答案

一尘不染

一种快速的“肮脏”解决方案是将.html请求附加到其中没有句点并且公共目录中存在HTML文件的请求中:

var fs        = require('fs');
var publicdir = __dirname + '/public';

app.use(function(req, res, next) {
  if (req.path.indexOf('.') === -1) {
    var file = publicdir + req.path + '.html';
    fs.exists(file, function(exists) {
      if (exists)
        req.url += '.html';
      next();
    });
  }
  else
    next();
});
app.use(express.static(publicdir));
2020-07-07