【问题标题】:Angular Spring Boot Packaging Issue Whitelabel ErrorAngular Spring Boot 打包问题 Whitelabel 错误
【发布时间】:2019-04-24 09:55:57
【问题描述】:

我有一个以 Spring Boot 作为后端,Angular 作为前端的项目。 我打包的方式是,我构建 angular 项目并将内容复制到 Spring Boot 资源文件夹中,并在我的 Spring Boot Controller 中返回由 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 映射,所以你看到 这是一个后备。

但是当我从应用程序转到这条路线时它可以工作。

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

【问题讨论】:

  • 您是否尝试启用 HashLocationStrategy? RouterModule.forRoot(routes, {useHash: true})
  • 该错误看起来像 Spring 错误,可能是由于当您直接访问此 URL 时,您跳过了从应用程序,并在服务/组件等中初始化状态。当你直接访问 URL 时,可能是这些调用没有进行,状态没有初始化,因此你得到一个错误。

标签: java spring angular spring-boot


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2019-01-24
    • 2019-04-02
    • 2018-07-22
    • 2018-11-14
    • 2017-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多