Так что мне нужно Express, чтобы всегда обслуживать каталог c. Это множество руководств о том, как просто обслуживать индекс. html, например здесь . Они используют этот код:
app.use(express.static(path.join(__dirname, 'build')));
app.get('/*', function (req, res) {
res.sendFile(path.join(__dirname, 'build', 'index.html'));
});
Однако проблема для меня заключается в том, что маршрут '/ *' служит только для индекса. html, а не для каких-либо файлов, которые он загружает, например, main. js. Мне в основном нужно, чтобы мое приложение всегда обслуживало build /, независимо от того, по какому пути находится посетитель, поскольку маршрутизация обрабатывается внешним интерфейсом с помощью React Router. Так, например:
app.get('/*', function (req, res) {
res.redirect('/');
});
Не работает, потому что удаляет путь. Пользователю, приземляющемуся на '/ aa / bb / cc', должен быть предоставлен тот же контент (express .stati c), что и пользователю на '/'. Я пробовал app.use('/*', express.static(...)
, однако это приводит к SyntaxError: expected expression, got '<'
в браузере, потому что, похоже, каждый запрос направляется в файл stati c index. html file?