Цель здесь состоит в том, чтобы обслуживать мой статический сайт (сгенерированный с помощью nuxtjs) с URL без косой черты.
Я хочу обслуживать foo.html
с URL /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
все еще не обслуживается!
Экспресс просто переходит к следующему ()
Я смог обслужить 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()
})
})
Но я чувствую, что это не должен быть правильный путьчтобы сделать это, я должен иметь возможность обслуживать все мои файлы со статическим.