Объедините бэкэнд Spring Boot и VueJS front-end в один файл войны - PullRequest
0 голосов
/ 29 января 2020

Я следовал этой статье , чтобы создать многомодульный проект Spring Boot с субмодулями backend и frontend. Бэкэнд разработан в Spring Boot и также использует Spring Security и JWT. Фронтенд разработан в VueJS. На этапе разработки я могу запустить бэкэнд на порту 8080, используя mvn spring-boot:run, а внешний интерфейс на порту 8081, используя npm run dev. Все URL-адреса на порте 8081 перенаправляются в представления, а ax ios используется для вызовов API REST на порт 8080. Теперь мне нужно развернуть это приложение в виде единого файла war для производства на порту 8080, и я хочу получить доступ к внешний вид от самого 8080.

Итак, если у меня есть страница с именем profile спереди, я могу получить к ней доступ с localhost:8081/profile, но когда я пытаюсь сделать localhost:8080/profile, она обрабатывает URL как вызов API REST, и я получаю 401 ошибку. Я также попытался проверить авторизацию Spring Security только для URL, начинающихся с /api/** и разрешающих все остальное. Но это тоже не работает.

Как разделить REST apis и VueJS представления? Какие конфигурации мне нужно добавить, чтобы сообщить Spring, какой URL является API, а какой - внешним видом. И куда мне его добавить?

...