NodeJS Express - 不使用html扩展名显示URL

9
我正在使用Express 4.12.3为网站提供静态文件服务。我希望能够访问example.com/mypage并检索/mypage.html。换句话说,我希望能够在不在URL中输入.html扩展名的情况下打开页面。
我的代码如下:
var express     = require('express');
var app         = express();
var server      = require('http').Server(app);

app.use(express.static(__dirname + '/public'));

server.listen(4000);

我可以在浏览器中使用 .html 扩展名访问我的页面,但是如果不加扩展名则会出现“未找到”的错误。有什么办法可以配置我的 Express 服务器以允许这种访问方式吗?

1个回答

23

您可以设置extensions选项以包含备用文件扩展名进行尝试:

app.use(express.static(__dirname + '/public', {
  extensions: ['html']
}));

1
那就是我需要的。正好是我要找的东西。感觉有点羞愧,因为这是一个如此简单的解决方案。不知道我在文档中怎么会漏掉这个。 - risingtiger
1
有没有一种简单的方法来处理尾随斜杠,而不需要使用像express-slash这样的依赖项? - stackunderflow

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接