Spring Boot映射URL请求静态资源,默认情况下不提供index.html

时间:2017-07-27 07:01:11

标签: java spring angular rest spring-mvc

我有一个 spring boot 应用程序,用于在我的static [resources / static]文件夹中提供角度资源。我也使用相同的项目来提供我的JSON-REST-API端点。

因此我在localhost下定义了我的REST api:9090 / api / ... 我的Angular2 app-build在localhost:9090 / ui / ...下通过静态资源提供

现在我想把我所有的ui / **网址转发给ui / index.html / ** 我该怎么做?

P.S。我已经介绍了一个自定义静态资源url模式 spring.mvc.static-path-pattern=/ui/** 然后我所有的ui / **请求将查看静态/ ** 这样我就可以保护我的/ api / **和“permitAll”ui / **请求

1 个答案:

答案 0 :(得分:0)

这个简单的配置可以解决问题,如果启用,甚至会以角度2刷新#个路径。

@Configuration
public class WebMvcConfiguration extends WebMvcConfigurerAdapter {
    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/ui").setViewName("forward:/ui/index.html");
        registry.addViewController("/ui/").setViewName("forward:/ui/index.html");
        registry.setOrder(Ordered.HIGHEST_PRECEDENCE);
    }


}

指针:   - 应该在运行Spring启动应用程序的地方注释@SpringBootApplication   - 没有@EnableWebMvc,因为这会破坏spring boot完成的所有自动配置   - 查看此配置是否在您标记为
的目录下    @ComponentScan({ “com.foo.config”})   - 此实现专门针对您定制了spring.mvc.static-path-pattern的情况[ui /]