Java 如何使用spring boot和zuul proxy for SPA应用程序配置重定向到索引页?

Java 如何使用spring boot和zuul proxy for SPA应用程序配置重定向到索引页?,java,angularjs,spring,spring-boot,proxy,Java,Angularjs,Spring,Spring Boot,Proxy,我尝试使用spring boot和angular spa应用程序。我需要将一些请求代理到另一台服务器。我已经用这个配置配置了zuul代理 zuul.routes.api.path=/api/** zuul.ignored-patterns=/api/products/**, /api/products-meta, /api/invoices, /api/products zuul.routes.api.url=http://another-api-server/ 在我的例子中,它工作得非常好,

我尝试使用spring boot和angular spa应用程序。我需要将一些请求代理到另一台服务器。我已经用这个配置配置了zuul代理

zuul.routes.api.path=/api/**
zuul.ignored-patterns=/api/products/**, /api/products-meta, /api/invoices, /api/products
zuul.routes.api.url=http://another-api-server/
在我的例子中,它工作得非常好,一些API是由我的应用程序提供的,一些是由另一台服务器提供的

下一个我想配置当用户试图通过直接链接访问我的应用程序时重定向到索引页,例如,
http://localhost/products/1

对于本例,我使用了这个IndexController

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

    @Controller
    public class IndexController {
        @RequestMapping("/**")
        public String index() {
            return "forward:/index.html";
        }
    }
但我收到了这个错误信息

这个堆栈跟踪

我的主应用程序类

@EnableZuulProxy
@SpringBootApplication
public class Ng2bootApplication {

    public static void main(String[] args) {
        SpringApplication.run(Ng2bootApplication.class, args);
    }

    @Bean
    public ApiGatewayFilter simpleFilter() {
        return new ApiGatewayFilter();
    }
}
ApiGatewayFilter只用于记录代理请求,没有其他用途

public class ApiGatewayFilter extends ZuulFilter {

    private static Logger log = LoggerFactory.getLogger(ApiGatewayFilter.class);

    @Override
    public String filterType() {
        return "pre";
    }

    @Override
    public int filterOrder() {
        return 0;
    }

    @Override
    public boolean shouldFilter() {
        return true;
    }

    @Override
    public Object run() {
        RequestContext ctx = RequestContext.getCurrentContext();
        HttpServletRequest request = ctx.getRequest();

        log.info(String.format("%s request to %s", request.getMethod(), request.getRequestURL().toString()));

        return null;
    }
}