将 angular 部署到带有 dist 输出的生产环境工作不正常

Deploying angular to production with dist output is not working perfectly

当使用 "ng build --prod" 并将 dist 文件夹内容复制到我的 war(部署到 tomcat 容器)时,我面临很多问题。比如刷新页面时出现404错误的路由

与我的客户端应用程序并行,我有其余应用程序(作为动态 Web 项目),我可以将其部署在服务器上(从 eclipse),并且我所做的更改会自动反映出来。 我想知道是否可以将我的 angular 的 src 作为该项目的一部分并在同一进程中部署客户端?!

它将节省处理 2 个单独的项目,以及处理构建应用程序以生成在开发模式下工作不完美的生产输出!

谢谢。

您应该将 useHash 选项添加到您的路由器配置中。它会将您的路由从 yourdomain.com/path 更改为 yourdomain.com/#/path 并避免 404 错误。

RouterModule.forRoot(
  appRoutes,
  { useHash: true }
)

这是最简单的做法,但您也可以使用 NGINX 单独为您的前端服务,并通过发送 index.html 强制他处理 404 并保持相同 url