Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从资产导入Json文件-角度生产构建问题_Json_Angular - Fatal编程技术网

从资产导入Json文件-角度生产构建问题

从资产导入Json文件-角度生产构建问题,json,angular,Json,Angular,我正在从asset文件夹导入json文件,以读取应用程序内部的一些配置,这些配置工作正常,我可以根据需要更改json值 你可以参考: 但在生产构建版本中,当尝试更改资产文件夹中json文件的值时,它会读取开发数据 经过调查,我们发现json数据被嵌入到main-es5文件中 是否有任何方法可以使用导入方法读取json文件,并且我们可以动态更改数据(基于环境)我建议通过HttpClient加载它,如果它包含一些配置,我认为这是您可以更改资产中的数据的方式,应用程序将使用HttpClient一次又一

我正在从asset文件夹导入json文件,以读取应用程序内部的一些配置,这些配置工作正常,我可以根据需要更改json值

你可以参考:

但在生产构建版本中,当尝试更改资产文件夹中json文件的值时,它会读取开发数据

经过调查,我们发现json数据被嵌入到main-es5文件中


是否有任何方法可以使用导入方法读取json文件,并且我们可以动态更改数据(基于环境)

我建议通过HttpClient加载它,如果它包含一些配置,我认为这是您可以更改资产中的数据的方式,应用程序将使用HttpClient一次又一次地加载

如果您想基于环境进行阅读,则typescript导入不起作用


创建一个服务,基于预先放置的特定于环境的JSON,通过HttpClient读取JSON。

这是另一个您可以尝试的替代解决方案

  • 创建一个
    app.constant.ts
    文件
  • //
    //====文件app.constants.ts
    //
    "严格使用",;
    导出常量appConstants={
    “键”:“值”,
    “键1”:“值”
    };
    
  • 在组件中按如下方式导入:
  • 从“/../app.constants”导入{appConstants};
    
  • 在以下组件中使用:
  • 
    this.variable=appConstants.key;
    
    您必须使用HttpClient获取json文件。我认为typescript导入功能不可能,因为这将读取编译时创建的捆绑版本,正如您已经发现的那样。如果您的产品json文件在编译时已经被知道,那么您当然可以绑定该文件。如果我们添加一个ts文件,那么在应用程序构建之后,我们无法更改该值