Express.js обслуживает статическую папку только по определенным URL - PullRequest
0 голосов
/ 12 мая 2018

У меня есть существующее экспресс-приложение, которое я использую для API, но я также хочу доставить папку с файлом HTML и некоторыми изображениями / css / js. Я могу заставить его обслуживать страницу HTML, но он делает это на /, тогда как я хочу, чтобы он служил на /manual. Вот мой урезанный код с express.static, мой / маршрут и перехват всех перенаправлений на /

const app = express();
app.use(express.static('manual'));

app.get('/', (req, res) => {
  res.status(403);
  res.send('Access denied.');
  return;
});

app.get('*', (req, res) => {
  res.redirect(301, '/');
  return;
});

Что происходит в настоящее время: Переход на mysite.com/manual перенаправляет на mysite.com/, который обслуживает index.html в папке manual.

То, что я хочу, чтобы произошло: Переход к mysite.com/manual служит для index.html в папке manual. И при переходе на mysite.com/ выдается код состояния 403.

1 Ответ

0 голосов
/ 12 мая 2018

Промежуточное программное обеспечение / обработчики применяются в том порядке, в котором вы их объявляете, поэтому вам просто нужно изменить порядок

const app = express();

app.get('/', (req, res) => {
  res.status(403);
  res.send('Access denied.');
  return;
});

// adding a first parameter lets you apply the middleware to a route
app.use('/manual', express.static('manual'));

app.get('*', (req, res) => {
  res.redirect(301, '/');
  return;
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...