Вложенные маршруты React router v6 и развертывание серверной части с контекстом веб-приложения - PullRequest
0 голосов
/ 06 мая 2020

Я разрабатываю веб-приложение, используя приложение create-response-app (CRA), response-router v6, и оно развертывается на сервере приложений Wildfly.

Маршрутизация на стороне клиента работает нормально в пределах CRA, но у меня возникают проблемы с ним при развертывании в Wildfly с контекстом веб-приложения.

Мои маршруты определены через объектно-ориентированную конфигурацию через useRoutes() с иерархией:

- /
  - reports
    - :reportId
      - resources

При развертывании в Wildfly URL-адреса будут выглядеть следующим образом, где /app - это контекст веб-приложения:

http://localhost:8080/app/
http://localhost:8080/app/reports
http://localhost:8080/app/reports/:reportId
http://localhost:8080/app/reports/:reportId/resources

Когда я нажимаю <Link to="reports" .../>, он будет рассматривать его как абсолютный URL-адрес и удалите контекст веб-приложения, поэтому URL-адрес станет: http://localhost:8080/reports

Затем я попытался использовать абсолютные URL-адреса, а не относительные URL-адреса при регистрации путей маршрута, но когда я это делаю, вложенные маршруты, похоже, не ответить.

Еще одна сложность заключается в том, что есть форма фильтра, которую я отправляю перед получением отчетов из серверной части. Однако при отправке я выполню некоторые проверки формы, а затем использую navigate из хука useNavigate(), чтобы перейти к пути отчетов. Похоже, этот API поддерживает только абсолютный, а не относительный путь.

Я не уверен, что делаю что-то не так, поэтому, если у кого-то есть какие-либо советы по вышеизложенному, мы будем очень признательны! Спасибо.

...