为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 }
并且,显然,导入它。
- 运行grunt和tomcat服务器的Web App(Spring,Angular,Grunt,Maven,Tomcat)
- Angular Js在Java Spring mvc中发布日期错误请求
- IE11 CORS拒绝https上的OPTIONS
- 如何在angularjs中发送多个FIles以及表单数据
- 将文件从SFTP直接下载到HTTP响应,而不使用中间文件
- Spring文件上传 – 获得预期的MultipartHttpServletRequest:是否配置了MultipartResolver? 错误
- 预检的响应具有无效的HTTP状态代码:401 angular
- 如何为单页AngularJS应用程序实现基本的Spring安全性(会话管理)
- 如何测试使用JavaScript开发的WebSocket