ng-build上的端口和代理配置

时间:2016-12-06 12:47:58

标签: angular firebase angular-cli firebase-hosting

我有一个前端在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通信

我该如何解决?

3 个答案:

答案 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。在下面详细了解服务器端重定向。

来源https://angular-doc.ru/guide/deployment

答案 2 :(得分:-1)

"build": "ng build --prod --proxy-config proxy.conf.json"