为SPA前端配置Spring Boot

我有整个前端部分在资源中铺设的应用程序。 我想将事情分开。 并且具有用于UI的单独服务器,例如由gulp提供。

因此,我假设我的服务器应该为客户端呈现的所有请求返回index.html

例如:我有’user /:id’路由,它通过角度路由进行管理,不需要任何服务器。 如何配置,以便服务器不会重新加载或重定向到任何地方?

我的安全配置如下(不知道它是否负责此类事情):

 public class Application extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.antMatcher("/**").authorizeRequests().antMatchers("/", "/login**", "/webjars/**", "/app/**", "/app.js") .permitAll().anyRequest().authenticated().and().exceptionHandling() .authenticationEntryPoint(new LoginUrlAuthenticationEntryPoint("/")).and().logout() .logoutSuccessUrl("/").permitAll().and().csrf() .csrfTokenRepository(csrfTokenRepository()).and() .addFilterAfter(csrfHeaderFilter(), CsrfFilter.class) .addFilterBefore(ssoFilter(), BasicAuthenticationFilter.class); } 

对于路由,根据本指南Using "Natural" Routes (特别是此处 ),您必须添加执行以下操作的控制器:

 @Controller public class RouteController { @RequestMapping(value = "/{path:[^\\.]*}") public String redirect() { return "forward:/"; } } 

然后使用Spring Boot, index.html加载at,并且可以加载资源; 路由由Angular处理。

如果你使用Angular和Spring Data Rest,我认为最直接的方法是使用角度哈希定位策略。

只需将它放在app模块的providers数组中:

{ provide: LocationStrategy, useClass: HashLocationStrategy }

并且,显然,导入它。