我有一个前端在int.myapp.com上运行,它在int.backend.myapp.com上的后端运行。我以为我可以像这样使用proxy.config.json进行代理:
"/api": {
"target": "https://int.backend.myapp.com",
"secure": true,
"changeOrigin": true
}
在我的package.json文件中
"start": "ng serve --proxy-config proxy.conf.json"
一切都适用于我的开发环境。
但是当我为生产而建立时:
ng buil --prod
并在firebase上部署
firebase deploy
Web应用程序无法与API通信
我该如何解决?
答案 0 :(得分:4)
万一其他人遇到此问题,我发现了一种解决方法,以防您仍然想在本地运行生产应用程序,使用http-server应用程序:
npm install -g http-server
构建生产应用程序:
ng build --prod
转到您的dist / [YOUR_APP_NAME_FOLDER]文件夹:
cd dist/[YOUR_APP_NAME_FOLDER]
运行http-server应用程序,并将Proxy选项(--proxy或-P)与您要指向的后端代理一起传递:
http-server -c-1 -P http://localhost:3000 .
答案 1 :(得分:0)
在将您的应用部署到生产过程中: 将服务器配置为将丢失文件的请求重定向到 index.html。在此处了解有关服务器端重定向的更多信息 https://angular-doc.ru/guide/deployment#fallback。
基本部署到远程服务器
对于最简单的部署,创建一个生产版本并将输出目录复制到 Web 服务器。
从生产构建开始:
content_copy ng build --prod 将输出文件夹(默认为 dist/)中的所有内容复制到服务器上的文件夹中。
配置服务器将丢失文件的请求重定向到 index.html。在下面详细了解服务器端重定向。
答案 2 :(得分:-1)
"build": "ng build --prod --proxy-config proxy.conf.json"