Rud*_*koŭ 3 java spring angularjs single-page-application gulp
我有整个前端部分在资源中铺设的应用程序.我想将事情分开.并且具有用于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);
}
Run Code Online (Sandbox Code Playgroud)
Epi*_*rce 14
对于路由,根据本指南Using "Natural" Routes(特别是此处),您必须添加执行以下操作的控制器:
@Controller
public class RouteController {
@RequestMapping(value = "/{path:[^\\.]*}")
public String redirect() {
return "forward:/";
}
}
Run Code Online (Sandbox Code Playgroud)
然后使用Spring Boot,可以index.html加载at /和资源; 路由由Angular处理.
小智 5
EpicPandaForce 有一个很好的答案,我想扩展它。以下端点也将允许匹配嵌套路由。如果您想要一个管理部分,您可以将其配置为返回不同的 index.html。
@Controller
class PageController {
@GetMapping("/**/{path:[^\\.]*}")
fun forward(request: HttpServletRequest): String? {
if(request.requestURI.startsWith("/admin")) {
return "forward:/admin/index.html"
}
return "forward:/index.html"
}
}
Run Code Online (Sandbox Code Playgroud)
此RequestMapping(或@GetMapping)通过排除任何包含句点(即“index.html”)的请求来工作。
| 归档时间: |
|
| 查看次数: |
5353 次 |
| 最近记录: |