express stati c: Конфликт, когда имя-папки равно html -имя-страницы - PullRequest
0 голосов
/ 17 июня 2020

Я обслуживаю содержимое c через

app.use(express.static(path.join(__dirname, '../Frontend'),{index:"index.html",extensions:['html']}));

В папке / Frontend находится файл с filename: projects. html и папка с именем : проекты . Это сочетание противоречиво и не работает.

Как я могу обслуживать проекты. html на www.example.com/projects и html -файлы внутри папки на www.example.com/projects/xyz?
(на данный момент www.example.com/projects/xyz работает, а www.example.com/projects возвращает 404. Кроме того, существует перенаправление 301 с / projects на / projects /)

Ответы [ 2 ]

0 голосов
/ 17 июня 2020

Обращаясь к моему комментарию, я бы предложил вариант того, что вы использовали:

app.get('/projects', (req, res) => {
    res.sendFile(path.join(__dirname,'../Frontend/projects.html'));
});
app.use(express.static(path.join(__dirname, '../Frontend'),{index:"index.html",extensions:['html']}));

Это будет более эффективно, потому что первый маршрут будет соответствовать только /projects, а не всему остальному, что начинается с /projects.

0 голосов
/ 17 июня 2020

В итоге я нашел решение (Спасибо всем за комментарии)

До:

app.use(express.static(path.join(__dirname, '../Frontend'),{index:"index.html",extensions:['html']}));

После (порядок актуален):

app.use('/projects', express.static(path.join(__dirname,'../Frontend/projects.html')));  
app.use(express.static(path.join(__dirname, '../Frontend'),{index:"index.html",extensions:['html']}));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...