gpt4 book ai didi

angularjs - spring mvc 捕获所有路由但只有未知路由

转载 作者:行者123 更新时间:2023-12-05 01:36:30 24 4
gpt4 key购买 nike

我有一个前端带有 angular 的 Spring Boot 应用程序。

我在 html5 模式下使用 ui-router,我希望 spring 在所有未知路由上呈现相同的 index.html。

// Works great, but it also overrides all the resources
@RequestMapping
public String index() {
return "index";
}

// Seems do be the same as above, but still overrides the resources
@RequestMapping("/**")
public String index() {
return "index";
}

// Works well but not for subdirectories. since it doesn't map to those
@RequestMapping("/*")
public String index() {
return "index";
}

所以我的问题是我怎样才能创建一个回退映射但允许通过资源?

最佳答案

我发现的最简单的方法是实现自定义 404 页面。

@Configuration
public class MvcConfig {

@Bean
public EmbeddedServletContainerCustomizer notFoundCustomizer(){
return new NotFoundIndexTemplate();
}

private static class NotFoundIndexTemplate implements EmbeddedServletContainerCustomizer {
@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
container.addErrorPages(new ErrorPage(HttpStatus.NOT_FOUND, "/"));
}
}
}

Neil McGuigan 提出了 HandlerInterceptor,但我无法理解它将如何实现。我不会很高兴看到这将如何实现,因为使用 html5 历史推送状态的单页应用程序将需要这种行为。而且我还没有真正找到解决这个问题的任何最佳实践。

关于angularjs - spring mvc 捕获所有路由但只有未知路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28585913/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com