Heroku / Express: «Не найдено» при попытке получить доступ к суб-маршруту (при обновлении) - PullRequest
0 голосов
/ 04 октября 2018

У меня есть приложение React Web, развернутое на Heroku и работающее на сервере Express / Node.js.Когда кто-то пытается получить доступ к какому-либо маршруту, мой файл index.js на сервере запускает следующий код:

const path = require('path')
app.get('*', (req, res) => {
res.sendFile(path.resolve(__dirname, 'client', 'build', 'index.html'))
})

Когда я загружаю приложение из корневого маршрута ('/'), все в порядке, и когда я перехожуВ приложении (с использованием React Router) все по-прежнему нормально.Проблема возникает, когда я пытаюсь обновиться из под-маршрута (например, / contact), тогда я получаю ошибку «Not Found».И когда я проверяю логи Heroku, я вижу это сообщение:

Error: ENOENT: no such file or directory, stat '/client/build/index.html'

Я должен заметить, что я запускаю скрипт сборки на сервере, и когда я вхожу в Heroku, я вижу папку "build" и всеСодержимое, включая «index.html», присутствует.

Следует также отметить, что я безуспешно пробовал другие конфигурации sendFile, такие как:

res.sendFile(path.resolve(__dirname + '/client/build/index.html'))

Кто-нибудь знает, в чем проблемаможет быть?

1 Ответ

0 голосов
/ 09 октября 2018

Я выяснил, в чем проблема, я просто ошибся путем.Должно быть:

res.sendFile(path.resolve(__dirname + '/app/client/build/index.html'))

Добавлена ​​часть '/ app'

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