Настройка моего проекта.
Backend: Springboot, предоставляющий различные API REST
Frontend: React Js. Сборка: я использую maven frontend-maven-plugin
и maven-antrun-plugin
для сборки своего реактивного проекта, используя npm и упаковывая его в банку с Springboot.
Моя реакция js Класс маршрутизатора выглядит следующим образом
const Routes = () => {
return (
<Switch>
<Redirect
exact
from="/"
to="/dashboard"
/>
<RouteWithLayout
component={DashboardView}
exact
layout={MainLayout}
path="/dashboard"
/>
.......
.......
Я запускаю свой jar с помощью команды java -jar ....
. Когда я пытаюсь достичь http://<host:port>
, он перенаправляет меня на http://<host:port>/dashboard
, что нормально. Все навигация с этого момента работает нормально в соответствии с моими маршрутами и каждым представлением, вызывает конечные точки бэкэнда для обслуживания контента на странице.
Проблема в том, что когда я пытаюсь перейти на какую-либо страницу напрямую, например, если я наберу http://<host:port>/dashboard
в своем браузере, я получу 404 Not found (генерируется springboot).
Я считаю, что проблема в том, что springboot пытается найти конечную точку /dashboard
, которой нет в бэкэнде и, следовательно, 404 выбрасывается. Как я могу указать reactjs или Springboot, что этот URL-адрес должен отображаться так же, как когда это было сделано с помощью /
Я не уверен, нужно ли эту проблему исправить на бэкэнде (Springboot) или интерфейс (Реагировать js маршруты).
У кого-нибудь есть идеи?