代码之家  ›  专栏  ›  技术社区  ›  Stefan

当字体和back有不同的url时,具有角度相对路径的Django

  •  0
  • Stefan  · 技术社区  · 4 年前

    两天后,我无法设置(任何形式的)网页包,在后面使用django3,在前面使用angular10,所以我决定只使用gulp为前端和python启动ng-serve管理.py运行后端服务器。我是新来的,所以这可能是非常愚蠢的,但真的两天是一个很大的时间来放弃设置,并没有得到任何回报。。

    目前,我正在尝试调用一个API在django服务器上,是在 http://127.0.0.1:8000 当发球开始时 http://127.0.0.0:4200

    @Injectable()
    export class EchoService {
        constructor(private httpClient: HttpClient) {}
    
        public makeCall(): Observable<any> {
            return this.httpClient.get<any>(
          'http://127.0.0.1:8000/my-api/'
            );
        }
    }
    

    '''

    0 回复  |  直到 4 年前
        1
  •  2
  •   Hafnernuss    4 年前

    角度允许定义 environment . 以下是我所做的:

    1. 在你的 src environments 文件夹。

    2. 创建以下文件并根据需要调整内容(应该已经有一个名为 environment.ts 好了,我稍后再谈。目前:

    environment.dev.ts

    export const environment = {
      production: true,
      apiURL: "http://127.0.0.1:8000/my-api"
    };
    

    environment.prod.ts

    export const environment = {
      production: true,
      apiURL: "https://api.yoururl.com/"
    };
    
    1. 修改您的 angular.json :
    ...
    "configurations": {
    ...
    "production": {
       "outputPath": "dist-prod/",
       "fileReplacements": [
           {
               "replace": "src/environments/environment.ts",
               "with": "src/environments/environment.prod.ts"
           }
       ],
    }
    "dev": {
       "outputPath": "dist-dev/",
       "fileReplacements": [
           {
               "replace": "src/environments/environment.ts",
               "with": "src/environments/environment.dev.ts"
           }
       ],
    }
    ...
    

    为了 ng serve 环境.ts 文件,所以内容应该与 . 通过调用以下命令,可以使用此设置创建生成:

    ng build --configuration dev
    ng build --configuration prod
    
    1. 在您的服务/组件中使用:
    import { environment } from 'your/path/environments/environment';
    
    @Injectable()
    export class EchoService {
        constructor(private httpClient: HttpClient) {}
    
        public makeCall(): Observable<any> {
            return this.httpClient.get<any>(
              environment.apiURL + 'your/endpoint/
            );
        }
    }
    

    现在,根据配置, environment.apiURL 可能是 127.0.0.1:8000 https://.... .

    万一我漏了什么,你可以看看 here .