0

更新:此问题存在于 9.4.25.v20191220 的码头中,我已将版本设置回它正确服务的 9.4.24。我不知道这是错误还是配置更改。

也许有人可以提供帮助,我很欣赏这是所有配置问题,但我只有将 spring-boot-starter-parent 从 2.1.10-RELEASE 升级到 2.1.13-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,并且在 \src\resources\public\ 中存在一个 Angular 项目,包括公共目录中的 index.html。

在之前的春季版本中,我可以导航到 localhost:8080,它会自动定向到 localhost:8080/list,这被设置为 Angular 项目索引文件中的重定向。

但是现在使用 2.1.13 我必须明确地转到 localhost:8080/index.html 这确实有效,重定向到 /list 并且我可以浏览网站,但是如果我刷新页面或者如果我明确地转到 :8080/list我得到白标签错误 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,并且只提取缓解漏洞所需的依赖版本。我只是想知道出了什么问题,显然不喜欢被打败。

有谁知道是否有春季版本的变更日志可以揭示发生了什么变化?我想这可能是由于任何数量的依赖项目。

4

1 回答 1

1

所以事实证明,无论问题是什么,它都在码头 9.4.27.v20200227 中得到解决。

从 2.1.10 开始的 Spring Boot 版本包含每个版本的新 Jetty 版本,现在的版本当前使用 9.4.27。

使用带有 9.4.27.v20200227 的 spring boot 2.1.13-RELEASE,返回转发到 localhost:8080 加载 /list 的预期内容

于 2020-03-26T17:25:20.757 回答