Node.js 在express中,将默认文件扩展名与静态内容请求关联的常用方法是什么?

Node.js 在express中,将默认文件扩展名与静态内容请求关联的常用方法是什么?,node.js,express,Node.js,Express,我在后端使用Express(v3),它还为我的静态内容提供服务,如下所示: app.use(allowCrossDomain); app.use(disableETag); app.use(app.router); app.use(express["static"](webRootDir)); app.use(express.methodOverride()); app.use(express.bodyParser()); app.use(express.errorHandler({ dumpE

我在后端使用Express(v3),它还为我的静态内容提供服务,如下所示:

app.use(allowCrossDomain);
app.use(disableETag);
app.use(app.router);
app.use(express["static"](webRootDir));
app.use(express.methodOverride());
app.use(express.bodyParser());
app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
app.set('view engine', 'html');
app.set('views', webRootDir);
app.engine("html", handlebarsEngine);
因此,“/customers.html”的请求由
express.static
中间件提供。但是,请求“/customers”不起作用,因为没有“customers”文件,也没有这样的动态内容路由

当然,我可以按照中介绍的路径从动态路径提供文件“customers.html”


然而,我认为这是一种过分的做法,这种事情应该通过默认的文件扩展名进行简单的配置,但我就是找不到如何配置。有人能告诉我吗?

express static基于服务静态,所以您可以传入一个带有extensions属性集的选项对象。对于您的示例,以下方法可行:

app.use(express.static(webRootDir, {'extensions': ['html']}));
这将设置express,以便在未找到文件时,例如
/customers
,它将尝试将每个扩展追加到路径,因此在您的情况下
/customers.html

请参阅