最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

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

网站源码admin18浏览0评论

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

从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缓存支持,内容类型标头等。

发布评论

评论列表(0)

  1. 暂无评论