«Недопустимый заголовок узла» в приложении React, развернутом в IBM Cloud - PullRequest
0 голосов
/ 15 октября 2018

Я разработал очень простое демо-приложение Todo List (Express + React), согласно YT-уроку Брэда Траверси , и успешно развернул его в Heroku, где оно запущено и работает.Однако, когда я развернул тот же самый точный код в IBM Cloud, я получил только пустой экран с предложением Invalid Host header.

Еще немного контекста:

  • Я использовал create-react-app в корне моего проекта
  • Между сервером и клиентом React существует прокси
  • Я развернул рабочую версию, которая обслуживает статические файлы:

    // Serve static assets if in production
    if (process.env.NODE_ENV === 'production') {
      app.use(express.static('client/build'))
    
      app.get('*', (req, res) => {
        res.sendFile(path.resolve(__dirname, 'client', 'build', 'index.html'))
      })
    }
    
  • Этапы сборки и развертывания в моем конвейере развертывания в IBM Cloud проходят без проблем

Я попытался решить эту проблему, используя подходофициальные документы create-Reaction-app предлагают:

HOST=mypublicdevhost.com
DANGEROUSLY_DISABLE_HOST_CHECK=true

Некоторые люди задавали аналогичный вопрос и о переполнении стека:

Однако ни один из ответов не помог.

Я пришел к выводу, что это проблема IBM Cloud.Кто-нибудь знает возможную причину этого?Существуют ли какие-либо ограничения, которые есть у IBM Cloud, которые препятствуют правильной загрузке моего приложения?

Любая помощь будет принята.

РЕДАКТИРОВАТЬ:

Сценарий для фазы сборки:

export PATH=/opt/IBM/node-v6.7.0/bin:$PATH
npm install
npm run build

Скрипт для фазы развертывания:

cf push "${CF_APP}"

1 Ответ

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

Рабочим решением является использование http-proxy-middleware для ручной настройки прокси.Пожалуйста, смотрите объяснение здесь: Развертывание create-реакции-приложения на heroku с экспресс-бэкендом возвращает неверный заголовок хоста в браузере

Вот минимальный рабочий пример: https://github.com/sehailey/proxytest и здесьРазвернут ли этот пример: https://proxytest2.herokuapp.com/

...