Итак, у меня проблема здесь. Когда я использую свое приложение React отдельно без Spring, оно прекрасно работает. Я могу go где угодно и в любом порядке. Все становится сложнее, когда Spring Boot вступает в игру. Если я запускаю мое приложение Spring Boot jar (включая веб-интерфейс), оно отлично работает, если я перемещаюсь по нему через Router Links (я начинаю с localhost: 8080 и могу перейти оттуда к / num / 123, например), но если я просто наберу localhost: 8080 / номер / 123 это не работает. Окно браузера белое (html код есть). В консоли браузера отображается GET http://localhost: 8080 / num / built / bundle. js net :: ERR_ABORTED 404, указывающая на строку в моем html.
Похоже происходит при обновлении любой страницы, кроме root. Я предполагаю, что это то, что я сделал свой контроллер неправильно, и он каким-то образом путает путь к моему пакету. js для не-root страниц.
Бэкэнд выглядит нормально, он использует "индекс "метод, как и предполагалось, он распознает значение переменной пути {number}.
Я потратил почти день, пытаясь ее решить, и понятия не имею. Пожалуйста, помогите: D
Вот важные части моего кода.
Мой контроллер:
@Controller
public class MainController {
@RequestMapping(value= {"/", "/num", "/num/{number}"})
public String index(@PathVariable(require - false) String number) { return index; }
}
Основной файл реакции:
function App() {
return (
<div className="App">
<Router>
<Switch>
<Route exact path="/">
<MainMenu />
</Route>
<Route path="/num/:number">
<NumberMenu />
</Route>
<Route path="*">
<Redirect to="/" />
</Route>
</Switch>
</Router>
</div>
);
}