Проблемы с переменной пути в Spring Boot + React - PullRequest
0 голосов
/ 25 марта 2020

Итак, у меня проблема здесь. Когда я использую свое приложение 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>
    );
}

1 Ответ

0 голосов
/ 25 марта 2020

Все, что мне нужно было сделать, это слегка изменить ту же строку в моем файле html. Я изменил

    <script src="built/bundle.js"></script>

на

    <script src="/built/bundle.js"></script>
...