Сервер загрузки Spring, использующий Jetty, по умолчанию не пересылается в index. html при работе в eclipse, начиная с spring-boot-starter-parent 2.1.12-RELEASE - PullRequest
0 голосов
/ 26 марта 2020

ОБНОВЛЕНИЕ: эта проблема существует в пристани с 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 \, включая индекс. html в каталоге publi c.

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

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

Я пробовал:

1.

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

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

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

2.

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

3.

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

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

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

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

1 Ответ

1 голос
/ 26 марта 2020

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...