首页 > 解决方案 > Angular 应用程序在本地工作,但在 Firebase 上不工作

问题描述

当我在本地启动我的 Angular 10 应用程序时,ng s -o它运行良好,并且能够连接到我在 Heroku 上运行的后端。

但是当我在 firebase 上部署它时,它只显示前端部分,不再从后端获取数据。奇怪的是它试图从我的本地后端获取数据localhost:8090。但是我用我的 Heroku 应用程序的 URL 替换了我的 Angular 应用程序中的每个 localhost URL:

错误信息

网络分析显示对 localhost:8090 的请求

当我在本地运行 Angular 应用程序时,localhost:4200我可以在浏览器控制台的网络分析中看到所有 http 请求都是对 Heroku URL 发出的:

在本地运行我的 Angular 应用程序时的网络分析

我将所有更改保存在我的 Angular 文件夹中,我将 URL 从 localhost 更改为 Heroku URL,然后将所有内容推送到 git(不知道这是否有区别),然后完全删除了我的 Angular 应用程序的 dist 文件夹,然后ng build --prod又跑了firebase deploy。但是,我在https://studleih-ceb70.web.app/上的 firebase 部署应用程序似乎一直在向https://localhost:8090/我的 Heroku URL ( https://studleih-heroku.herokuapp.com/ ) 发出请求。我使用 Visual Studio 的搜索功能查看,如果我忘记替换项目中的 localhost URL,但我将它们全部替换。

附加信息:使用 on firebase 部署的应用程序时,所有 http 请求都会出现错误,而不仅仅是上面显示的http://localhost:8090/products: firebase 上的其他失败请求-> 它们都应该使用 tohttps://studileih-heroku.herokuapp.com/而不是localhost.

为什么localhost在构建 + 部署之前从我的应用程序中删除所有本地主机 URL 时,我已部署的应用程序仍会发出请求?

标签: angularfirebase

解决方案


好吧,看来仅仅运行firebase deploy是不够的,我还必须运行firebase use --add并为项目提供一个新的别名,然后再再次部署它。然后它起作用了。


推荐阅读