首页 > 解决方案 > Angular Spring Boot 打包问题 Whitelabel 错误

问题描述

我有一个以 Spring Boot 作为后端,Angular 作为前端的项目。我打包的方式是,我构建 angular 项目并将内容复制到 Spring Boot 资源文件夹中,并在我的 Spring Boot 控制器中返回由 angular 生成的 index.html。

@Controller
public class IndexController {

    @Autowired
    ISupportedLanguagesRepository is;

    @RequestMapping(value={ "/", ""})
    public String getIndex() {
        return "index.html";
    }
}

所有其他控制器都是对后端的 REST api 调用。当我分别运行 Spring Boot 和 Angular 项目时,所有路由都运行良好。

但是当我将它们打包在一起时,只有当所有导航都通过应用程序完成时,这些路由才起作用。但是当我直接尝试获取 url 时,它给了我这个

白标错误页面

此应用程序没有显式映射 /error,因此您将其视为后备。

但是当我从应用程序转到这条路线时它会起作用。

我该如何解决这个问题?即使在任何页面上点击刷新也会产生相同的错误。

标签: javaspringangularspring-boot

解决方案


正如 dirk 所提到的,通过在路由中使用 {useHash: true} 解决了这个问题


推荐阅读