Я надеюсь, что это поможет.

я есть приложение Angular 4 (ES6), которое я хочу обслуживать из приложения Spring Boot. У моего приложения Angular есть index.html, и когда адресHTTP: // локальный: 8080 Spring Boot знает, что сопоставить с файлом index.html, который в Angular сопоставлен с "/ search".

Тем не менее, у меня есть другой маршрут, называемый "adminlogin", который я бы получил через

HTTP: // локальный: 8080 / adminLogin

Но в этом случае он попадает в мое приложение Spring Boot, которое не имеет сопоставления, а затем выдает ошибку.

Как я могу получить свой адресHTTP: // локальный: 8080 / adminLogin перейти в мое приложение Angular?

 Black Dynamite18 сент. 2017 г., 04:42
Решение можно найти в этом посте.stackoverflow.com/questions/24837715/...

Ответы на вопрос(2)

adminlogin не было картировано ни в одной веснеcontroller Приложение Spring отправит запрос на/error, Следовательно, вы получаете страницу с ошибкой.

Вы должны направить его обратно в угол, чтобыadminlogin страница будет перенаправленаAngular.

Следуя простому маршруту, чтобы сделать это.

@Controller
public class RouteToAngular implements ErrorController {

    @RequestMapping("/error")
    public String handleError() {
        return "/";
    }

    @Override
    public String getErrorPath() {
        return "/error";
    }
}

Примечание: не забудьте реализовать страницу 404 в Angular.

Я надеюсь, что это поможет.

реализовалWebMvcConfigurer интерфейс для переопределенияaddResourceHandlers() метод и перенаправить наindex.html когда в контроллерах пружин не было отображений. это можно сделать в Spring boot 1.5.x с расширением (теперь не рекомендуется)WebMvcConfigurerAdaptor класс. это подробно обсуждается в этом потоке stackoverflow:https://stackoverflow.com/questions/38516667/springboot-angular2-how-to-handle-html5-urls#=

Я положил мое встроенное угловое приложение в этом местеtarget/classes/static с помощьюoutputPath поле вangular.json (ранее.angular-cli.json). Вот пример кода:

@Configuration
public class MyAppWebMvcConfigurer implements WebMvcConfigurer {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/**/*")
            .addResourceLocations("classpath:/static/")
            .resourceChain(true)
            .addResolver(new PathResourceResolver() {
                @Override
                protected Resource getResource(String resourcePath, Resource location) throws IOException {
                    Resource requestedResource = location.createRelative(resourcePath);
                    return requestedResource.exists() && requestedResource.isReadable() ? requestedResource : new ClassPathResource("/static/index.html");
                }
            });
    }
}

Ваш ответ на вопрос