加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Angular 2 CLI中基于环境的不同代理配置

发布时间:2020-12-17 07:02:16 所属栏目:安全 来源:网络整理
导读:如何在Angular 2 CLI项目中为开发和生产环境声明2个不同的代理URL?例如,在开发模式下,我想使用 { "/api/*": { "target": "http://localhost:3000","secure": false }} 但在生产模式下,我会用 { "/api/*": { "target": "http://api.exampledomain.com","secu
如何在Angular 2 CLI项目中为开发和生产环境声明2个不同的代理URL?例如,在开发模式下,我想使用

{
    "/api/*": {
        "target": "http://localhost:3000","secure": false
    }
}

但在生产模式下,我会用

{
    "/api/*": {
        "target": "http://api.exampledomain.com","secure": false
    }
}

解决方法

我不相信你可以通过环境文件控制代理功能.另一种方法是在您的环境文件中定义您的api域

// environment.ts
export const environment = {
    production: false,api: 'http://localhost:3000'
};

// environment.prod.ts
export const environment = {
    production: true,api: 'http://api.exampledomain.com'
}

然后在你的ts源文件中从环境文件中提取域名

// some service
import { Injectable } from '@angular/core';
import { environment } from '../../../environment.ts';
import { Http } from '@angular/http';

@Injectable()
export class SomeService {
    constructor(private http: Http);

    getData(){
        return this.http.get(environment.api + '/rest-of-api');
    }
}

现在,当您运行构建或提供命令时,它们将使用环境文件中定义的api路径

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读