Rails с приложением React на маршрутах Heroku не работают при обновлении - PullRequest
0 голосов
/ 03 июля 2019

Я пытался создать Rails API со встроенным интерфейсом React и развернуть его в Heroku.Я использую create-response-app для сборки приложения React в каталоге с именем client в папке проекта Rails.Я запускаю API Rails на localhost: 3001 и приложение React на localhost: 3000.И это работает, когда я развертываю его в Heroku, за исключением случаев, когда я использую URL-адрес React Router и пытаюсь обновить страницу, или если я пытаюсь скопировать и вставить URL-адрес в браузере.Это тот же результат на нескольких браузерах.Например, если я перейду к корневому URL: https://appname.herokuapp.com, он отобразит приложение React с панелью навигации.Если я нажму на «Статьи», я перейду на https://appname.herokuapp.com/articles и открою страницу со статьями.Однако, если я обновлю браузер, я просто получу пустую страницу.То же самое, если я скопирую / вставлю этот URL в браузере.

Я следовал трем отдельным учебникам по развертыванию приложения Rails / React на Heroku примерно с 2018 года. Все они упоминают эту проблему и предлагают точно такое же решение.

В app / controllers / application_controller.rb добавьте это действие:

def fallback_index_html
  render :file => 'public/index.html'
end

И в маршрутах добавьте этот маршрут внизу:

# config/routes.rb
get '*path', to: "application#fallback_index_html", constraints: ->(request) do
  !request.xhr? && request.format.html?
end

Они все говорятэто будет работатьНо после того, как я попробовал три отдельных урока, которые не справились с одной и той же проблемой, я в растерянности.Я знаю, что на странице обновления приложение ищет маршруты Rails, а не маршруты React Router.Вышеупомянутое решение не работает.Возможно, что-то изменилось с Heroku, Rails или React, что мешает этому сейчас работать.Как мне это исправить?

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