微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

node.js – 即使我的路由到另一个文件,express也提供index.html

我有一个公共目录,其中包含index.html和index-08.html文件.

使用下面的代码,我希望能够提供index-08.html.但是,index.html通过localhost:3000的浏览器请求提供服务

app.use(express.static(path.join(__dirname,'public')));
app.get('/',function(req,res) {
    res.sendFile('public/index-08.html');
});

但是,如果我将index.html的文件名更改为其他名称,比如not-index.html,则会提供正确的文件index-08.html.

你能帮我理解为什么会这样吗?

解决方法

这是因为您在app.get(‘/’)之前声明了app.use(express.static). Express按照声明的顺序检查路由,并且由于index.html是静态中间件使用的文件名,因此它显示index.html内容.

解决这个问题,您可以在app.get(‘/’)之后放置app.use(express.static),或者将static second参数的index属性设置为非现有文件(false似乎不起作用):

app.use(express.static(path.join(__dirname,'public'),{index: '_'}));

原文地址:https://www.jb51.cc/nodejs/241138.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐