Угловая маршрутизация не работает после развертывания в приложении Springboot - PullRequest
0 голосов
/ 24 апреля 2018

У меня есть приложение Springboot, включая Angluar5.У меня есть скрипт сборки gradle, который загружает угловые файлы в мой проект springboot. Файлы находятся в папке resources / static моего проекта springboot.Когда я запускаю свое приложение, маршрутизация angular больше не работает, и я получаю

Ошибка: невозможно сопоставить никакие маршруты.Сегмент URL: «доступ»

Структура моего проекта:

enter image description here

Я развернул свое угловое приложение со следующим утверждением:

ng build --deploy-url = BeatAcknowledgeTest --op = .. / backend / src / main / resources / static

Это сделает мои статические файлы доступными дляследующая ссылка:

www.mySite.com / BeatAcknowledgeTest /...

Если я наберу

www.mySite.com / BeatAcknowledgeTest / access

страницы отображаются и все хорошо, но когда я нахожусь в другом компоненте, например

www.mySite.com / BeatAcknowledgeTest / home

и я нажимаю на кнопку, которая направляет меня к

www.mySite.com / BeatAcknowledgeTest / access

я получаю сообщение об ошибке, и мое приложение не перенаправляет.

Есть предложения?

1 Ответ

0 голосов
/ 12 декабря 2018

Я решил эту проблему, создав RequestForwardingController в моем приложении.Который позаботится обо всей маршрутизации:

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class RequestForwardingController {
    @RequestMapping(value = "/**/{[path:[^\\.]*}")
    public String redirect() {
        // Forward to home page so that angular routing is preserved.
        return "forward:/";
    }
}

Это также решает проблему перезагрузки URL.В котором вы нажимаете кнопку перезагрузки браузера, он покажет страницу ошибки загрузки Spring.

...