angular - 如何使用代理配置将 Angular 2 应用程序部署到 HTTP 服务器

标签 angular deployment angular5

我正在使用以下代理配置构建 Angular 2 应用程序。

proxy.conf.json

{ 
 "/": {
  "target": "http://localhost:6060",
  "secure": false,
  "changeOrigin": true,
  "logLevel": "debug" 
}}

我使用 spring boot 应用程序作为我的后端,它在端口 6060 上运行

我的包json的构建脚本如下

package.json

"scripts": {
"ng": "ng",
"start": "ng serve --proxy-config proxy.conf.json",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
}

当我使用 npm start 时,应用程序运行良好。所有后端请求都发送到 http://localhost:6060

然后我使用

构建生产版本
ng build --prod --proxy-config proxy.conf.json

并将生成的代码部署到 HTTP 服务器(apache 服务器)。 然后我访问http://localhost/应用程序统计信息。但是当我尝试提出请求时,这些请求指向 http://localhost/ ...不http://localhost:6060

我尝试找到一些解决方案,但没有一个有效。请给我一些帮助。

谢谢

最佳答案

ng serve 的 --proxy-config 参数仅适用于 CLI 内置的开发 Web 服务器。它对其他部署目标没有影响,对您的生产构建没有任何影响。

您说您使用 apache,在这种情况下,您应该使用 ProxyPass 指令设置 Apache:Link to Apache mod_proxy documentation

通常用于要编辑的 Ubuntu Linux 服务器:

/etc/apache2/sites-enabled/000-default

并插入以下指令:

ProxyPass /path/to/backend http://localhost:6060/

然后 Apache 将转发(代理)您向 http://localhost/path/to/backend 发出的请求至 http://localhost:6060

关于angular - 如何使用代理配置将 Angular 2 应用程序部署到 HTTP 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48135134/

相关文章:

node.js - Angular - 如何创建加载屏幕 'like gmail'

动态组件的 Angular 2 OnPush 变化检测

javascript - 更新数组中的多个对象

php - 如何自动部署网络应用程序

deployment - Apache NiFi 的开发生命周期

java - 如何修复 faSTLane 错误 : Keystore file 'keystore.jks' not found for signing config 'externalOverride' . ?

Angular 5 找不到类型为 '[object Object]' 的不同支持对象 'object' 。 NgFor 仅支持绑定(bind)到 Iterables,例如数组

javascript - 如何在 Angular 5 组件中有条件地加载 templateUrl html 文件

如果应用程序具有延迟加载功能,Angular 5 : Header, 页脚和侧边栏组件应该放在核心模块还是共享文件夹中?

angular - 具有函数返回 Observable 和异步管道的模板绑定(bind)