Angular 7 - невозможно прочитать файл JSON из ресурсов - PullRequest
0 голосов
/ 20 сентября 2019

Я пытаюсь прочитать файл конфигурации JSON из моих ресурсов в угловом проекте.Я создал Службу и вызвал ее в App.Module.ts в функции initializeApp.

мои файлы jSON находятся в src / assets / config / папке

Когда этозапускает, показывает в консоли пустой Json-файл "{}".

Это мой сервис.

import { IConfig } from "../_model/config";
import { Injectable } from '@angular/core';
import { environment } from 'src/environments/environment';
import { HttpClient, HttpResponse } from '@angular/common/http';
import { Observable } from 'rxjs';
import 'rxjs/add/operator/map';



@Injectable()
export class Config {
    static settings: IConfig;

    constructor(private http: HttpClient) {
    }

    load() {
        const jsonFile = `assets/config/config.${environment.name}.json`; // ${environment.name} could be 'prod' or  'dev'

        return new Promise<void>((resolve, reject) => {
            this.http.get(jsonFile).toPromise().then((response: IConfig) => {
                Config.settings = <IConfig>response;
                resolve();
            }).catch((response: any) => {
                reject(`Error en archivo de configuracion '${jsonFile}': ${JSON.stringify(response)}`);
            });
        });
    }

и интерфейс конфигурации, если вы хотите проверить:

export interface IConfig {
    config: {
        production: boolean;
    };
    path: {
        url_root: string;
    };
    timeZone: {
        time: number;
    };
}

консольная ошибка

core.js:15724 ERROR Error en archivo de configuracion 'assets/config/config.dev.json': {}

она всегда идет на Catch и печатает сообщение об ошибке с EMPTY JSON, как будто не существует.

Если вам нужна дополнительная информация, просто скажите мне.

1 Ответ

0 голосов
/ 20 сентября 2019

Я думаю, вам нужно добавить путь "src/assets/config/" в массив assets: [] вашего файла angular.json.Тогда я думаю, что вы должны перекомпилировать сервер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...