[英]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.