Обслуживание статических файлов из Express без расширения, проблема с подкаталогами с тем же именем файла - PullRequest
0 голосов
/ 25 мая 2018

Цель здесь состоит в том, чтобы обслуживать мой статический сайт (сгенерированный с помощью 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()
    })
})

Но я чувствую, что это не должен быть правильный путьчтобы сделать это, я должен иметь возможность обслуживать все мои файлы со статическим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...