Сервер загрузки Spring с использованием причала не перенаправляется на index.html по умолчанию при работе в eclipse, поскольку spring-boot-starter-parent 2.1.12-RELEASE

ОБНОВЛЕНИЕ: эта проблема существует в причале с 9.4.25.v20191220, я установил версию обратно на 9.4.24, она работает правильно. Является ли это ошибкой или изменением конфигурации, я не знаю.

Может быть, кто-то может помочь, я понимаю, что это все проблемы с конфигурацией, но у меня была эта проблема только при обновлении spring-boot-starter-parent до 2.1.13-RELEASE с 2.1.10-RELEASE.

Использование @SpringBootApplication и всего остального по умолчанию, за исключением следующего WebMvcConfigurer (найдено в другом сообщении здесь)

@Configuration
public class WebApplicationConfiguration implements WebMvcConfigurer
{
    @Override
    public void addViewControllers(ViewControllerRegistry registry)
    {
        registry
            .addViewController("/{spring:\\w+}")
            .setViewName("forward:/");
        registry
            .addViewController("/**/{spring:\\w+}")
            .setViewName("forward:/");
        registry
            .addViewController("/{spring:\\w+}/**{spring:?!(\\.js|\\.css|\\.svg)$}")
            .setViewName("forward:/");
    }
}

Использование Jetty и проект angular, присутствующий в \src\resources\public\, включая index.html в общедоступном каталоге.

В предыдущей весенней версии я мог перейти к localhost: 8080, и он автоматически перенаправлялся на localhost: 8080/list, это настроено как перенаправление в индексном файле проекта angular.

Но теперь, используя 2.1.13, я должен явно перейти на localhost:8080/index.html, который работает, перенаправляет на /list, и я могу перемещаться по веб-сайту, но если я обновлю страницу или если я перешел явно на: 8080/list я получаю ошибка whitelabel 500

Я пытался:

1.

Добавление различных других правил контроллера представления:

registry.addViewController("/").setViewName("forward:/index.html"); registry.addViewController("/").setViewName("forward:index.html"); registry.addViewController("/**").setViewName("forward:index.html");

... Но я все равно не думаю, что это проблема.

2.

Просмотрел ResourceHandlerRegistry, чтобы увидеть расположение ресурсов по умолчанию, поэтому он должен подобрать мой файл index.html.

3.

Добавление spring.resources.static-locations=classpath:/public/xxx/**

Затем я получаю доступ к localhost:8080/xxx/ или localhost:8080/xxx/index.html whitelabel 404.

Я обновил Spring из-за уязвимостей в системе безопасности, поэтому в настоящее время возникает соблазн вернуться к 2.1.10 или 11 и получить только те версии зависимостей, которые необходимы для устранения уязвимостей. Я просто хотел бы понять, что происходит не так, и, очевидно, мне не нравится быть побежденным.

Кто-нибудь знает, есть ли журналы изменений для версий Spring, которые пролили бы свет на то, что изменилось? Я предполагаю, что это может быть связано с любым количеством зависимых проектов.


person Ryan    schedule 26.03.2020    source источник


Ответы (1)


Получается, что какой бы ни была проблема, она исправлена ​​в причале 9.4.27.v20200227.

Выпуски Spring Boot из 2.1.10 содержали новую версию Jetty для каждого выпуска, а в настоящее время выпуск использует 9.4.27.

Используя spring boot 2.1.13-RELEASE с 9.4.27.v20200227, возвращает переадресацию к тому, что ожидается с загрузкой/списком localhost:8080

person Ryan    schedule 26.03.2020