从Express提供扩展名的静态文件,带有相同名称的子目录文件

编程入门 行业动态 更新时间:2024-10-20 03:19:19

从Express提供扩展名的静态<a href=https://www.elefans.com/category/jswz/34/1771438.html style=文件,带有相同名称的子目录文件"/>

从Express提供扩展名的静态文件,带有相同名称的子目录文件

这里的目标是使用不带斜杠的URL为我的静态网站(由nuxtjs生成)提供服务。

我想用网址foo.html投放/foo为此,我使用带有扩展选项的静态表达>]

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

这很好,除非html文件与文件夹具有相同的名称,否则除外

。让我们考虑一下这个文件树:
foo.html
bar.html
bar/baz.html

[/foo将用作foo.html

[/bar/baz将用作baz.html

但是/bar将重定向到/bar/

我试图通过这种方式停用重定向选项:

app.use(express.static(__dirname + '/public', { extensions: 'html', redirect: false }))

现在/bar不再重定向,但文件bar.html仍不提供!

Express刚刚移到next()

我能够提供bar.html在其他路由之后添加它:

app.use(function(req, res, next) {
    var file = __dirname + '/public' + req.path + '.html'
    fs.exists(file, function(exists) {
        if (exists) res.sendFile(file)
        else next()
    })
})

但是我觉得这不应该是正确的方法,我应该能够为我的所有文件提供静态服务。

这里的目标是为我的静态网站(使用nuxtjs生成)提供带有url的网址,且不加斜杠。我想将foo.html与url / foo一起使用为此,我正在使用带有扩展选项的静态表达...

回答如下:

从Express 4.8.0起,您可以使用res.sendFile替代express.static。它使用相同的支持代码,并支持相同的功能,例如HTTP缓存支持,内容类型标头等。

更多推荐

从Express提供扩展名的静态文件,带有相同名称的子目录文件

本文发布于:2024-05-07 12:07:59,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1756174.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:文件   子目录   扩展名   静态   名称

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!