Я разрабатываю веб-приложение, используя приложение 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 поддерживает только абсолютный, а не относительный путь.
Я не уверен, что делаю что-то не так, поэтому, если у кого-то есть какие-либо советы по вышеизложенному, мы будем очень признательны! Спасибо.