Angular 路由在开发模式下工作,但在作为 Spring Boot 应用程序启动时不工作

问题描述

我是 angular 的新手,使用 angular 10。

在“app-routing.module.ts”中,我可以看到下面的配置以在 url 中启用“#”

imports: [ RouterModule.forRoot(routes,{ useHash: true }) ]

问题: 如果我在开发服务器(4200 端口)上通过 vs 代码运行应用程序,那么它将 URL“http://localhost:8081/auth”重定向到“http://localhost:8081/#/auth”并且页面加载成功.

但是如果我通过 Intellij(端口 8080)运行应用程序作为 springboot 应用程序,那么它会重定向到带有 404 的“http://localhost:8081/auth”

有人可以帮忙解决这个问题吗?

解决方法

您不会将其作为 Spring Boot 应用程序运行。 Spring Boot 启动一个托管前端的 tomcat 服务器。

通常您已经将编译好的 angular 应用程序打包在 spring boot 项目的资源目录中。那些在 tomcat 运行时作为静态文件提供。

检查资源文件夹中存在的实际静态文件是否正确(从最新的角度版本正确编译的文件)

通常构建的 Angular 应用程序存储在 /src/main/resources/static

Intelij 将从 target/.... 加载整个应用程序,因此请检查您的静态角度文件是否存在。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...