Demigodd
@Demigodd

Почему Responsе возвращает «You need to enable JavaScript to run this app.» при деплое React+Express+Heroku?

После развертывания приложения, все закончилось успешно, но при отправке запроса, к примеру получение данных пользователя, возврашаеться сообщение "You need to enable JavaScript to run this app.".
2XeZq.png

Файлы вроде подключены правильно.
2XeZr.png

Вот как я возвращаю собранный через react-scripts build сбилдованный React App из сервера.
// server

if (process.env.NODE_ENV === 'production') {
  app.use(express.static(path.join(__dirname, '../build')));

  app.get('*', (req: any, res: any) => {
    res.sendFile(path.resolve(__dirname, '../build', 'index.html'));
  });
}


пути в моем приложений выглядят так.
/APP
-/build
-/public
-/src
--/client
--/server
--app.ts
--server.ts
-package.json

Ну и сам package.json
// package.json

"homepage": ".",
"scripts": {
  "start:react": "react-scripts start",
  "start": "node --require ./ts-hook.js ./src/server.ts",
  "heroku-postbuild": "react-scripts build"
},


В чем может быть проблема ?
  • Вопрос задан
  • 7521 просмотр
Решения вопроса 1
hzzzzl
@hzzzzl
только на хероку такое?
выглядит, что роутер в экспрессе не подключен, и вместо запросов к АПИ отдает реакт апп,

где-то должно быть
app.use('/api/', require('./routes'))
перед app.get('*', ...build/index.html..)

может быть этот кусочек кода остался вне проверки process.env.NODE_ENV === 'production' ?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы