繁体   English   中英

Angular 7 - 无法从资产中读取 JSON 文件

[英]Angular 7 - Cannot read JSON file from assets

我试图从我在 angular 项目中的资产中读取 JSON 配置文件。 我创建了一个服务并在一个 initializeApp function 中调用 App.Module.ts。

我的 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 并使用 anf EMPTY JSON 打印错误消息,就像不存在一样。

如果您需要更多信息,请告诉我。

我认为您必须将"src/assets/config/"路径添加到assets: []阵列您的 angular.json 文件。 然后我认为你必须重新编译服务器。

你需要后退两次。 ../../

代替

const jsonFile = `assets/config/config.${environment.name}.json`; 

const jsonFile = `../../assets/config/config.${environment.name}.json`; 

安全推荐

但是,我建议您必须将配置放在environment文件而不是assets文件夹中,因为环境受浏览器保护,而资产将对任何人公开。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM