angular - Angular 应用程序在本地工作,但在 Firebase 上不工作
问题描述
当我在本地启动我的 Angular 10 应用程序时,ng s -o
它运行良好,并且能够连接到我在 Heroku 上运行的后端。
但是当我在 firebase 上部署它时,它只显示前端部分,不再从后端获取数据。奇怪的是它试图从我的本地后端获取数据localhost:8090
。但是我用我的 Heroku 应用程序的 URL 替换了我的 Angular 应用程序中的每个 localhost URL:
当我在本地运行 Angular 应用程序时,localhost:4200
我可以在浏览器控制台的网络分析中看到所有 http 请求都是对 Heroku URL 发出的:
我将所有更改保存在我的 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
: -> 它们都应该使用 tohttps://studileih-heroku.herokuapp.com/
而不是localhost
.
为什么localhost
在构建 + 部署之前从我的应用程序中删除所有本地主机 URL 时,我已部署的应用程序仍会发出请求?
解决方案
好吧,看来仅仅运行firebase deploy
是不够的,我还必须运行firebase use --add
并为项目提供一个新的别名,然后再再次部署它。然后它起作用了。
推荐阅读
- flutter - Flutter 集成开发环境搭建
- sql - PostgreSQL/TimescaleDB:如何只保存相对于最后一个相似行有增量的行?
- multidimensional-array - CUDA:带有 3D 内核的嵌套 FOR 循环:如何确定线程应该写入结果的位置?
- javascript - 在 tensorflow.js 中加载训练模型时节点获取错误
- php - 从数据库计算
- swift - NWConnection 脚本适用于 iPhone 但不适用于 Apple Watch
- c++ - 如何在类构造函数中绑定对堆栈分配类的引用?
- sql - CSV 导入失败 - 批量加载数据转换错误(指定代码页的类型不匹配或无效字符)
- linux - “软件包 linux-modules-extra-5.4.0-56-generic 需要重新安装,但我找不到它的存档。” 错误弹出
- python - 在 DetailView 中使用对象