#reactjs #spring-boot #react-router
Вопрос:
У меня есть приложение React, которое упаковано в Spring Boot jar. Структура внутри банки после сборки выглядит следующим образом
/static/bundle.js
/static/index.html
В конфигурации весенней загрузки для визуализации пользовательского интерфейса я добавил
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/").setViewName("forward:/index.html");
}
Внутри приложения React
<BrowserRouter basename="/">
<Switch>
<Route path="/" component={ShoppingCart} />
<Route path="/recap" component={Recap} />
<Route path="/confirm" component={ConfirmPayment} />
</Switch>
</BrowserRouter>
Это работает нормально , я могу получить доступ к приложению по корневому пути http://localhost:8088/ . Все дальнейшие навигации также работают как /резюме.
Теперь я добавил имя контекста в Spring application properties server.servlet.ContextPath=/демо и изменения кода, как показано ниже
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/demo").setViewName("forward:/index.html");
}
<BrowserRouter basename="/demo">
<Switch>
<Route path="/" component={ShoppingCart} />
<Route path="/recap" component={Recap} />
<Route path="/confirm" component={ConfirmPayment} />
</Switch>
</BrowserRouter>
Это успешно отобразит корневую страницу на http://localhost:8088/demo
Но если я попытаюсь перейти к экрану обзора [история.нажмите({путь: «/обзор»….]), он не сможет найти маршрут. URL-адрес изменен на http://localhost:8088/demo/recap , но страница не загружена.
Я искал и пробовал много разных способов, но не смог добиться успеха.