You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular应用中需通过Http加载的文件应放置在何处?

Angular中Http加载静态JSON文件的正确存放位置

嘿,这问题我熟,给你捋清楚:

首先,你得把env.json放到项目的**src/assets文件夹**里——这是Angular CLI默认的静态资源存放目录,好处是不管你跑ng serve开发模式还是ng build生产构建,CLI都会自动把这个文件夹里的文件同步到对应的输出目录(开发模式是虚拟的服务器根目录,生产构建就是dist文件夹),不用手动复制。

然后你得改一下请求路径,原来的'env.json'要改成'assets/env.json',修改后的代码是这样:

this.http.get('assets/env.json')
  .map(res => res.json()).catch((error: any, caught: Observable<any>) => {
      console.log('加载配置文件失败');
      return Observable.throw(error.json().error || 'Server error');
  }).subscribe(() => {
      console.log('配置文件加载成功');
  });

为啥原来的路径不行?

你直接写env.json的话,Angular的开发服务器会去它的根目录找,但没放在assets里的文件不会被CLI纳入资源列表,服务器自然找不到。而assets里的文件会被自动映射到服务器的/assets路径下,所以请求assets/env.json就能命中。

快速验证方法

启动ng serve后,打开浏览器直接访问http://localhost:4200/assets/env.json,如果能看到你的JSON内容,说明路径和存放位置都没问题了。

要是你不想用默认的assets文件夹,也可以自定义:打开angular.json,找到architect.build.options.assets数组,添加你自己的静态目录,比如:

"assets": [
  "src/favicon.ico",
  "src/assets",
  "src/my-config-files" // 新增自定义静态目录
]

这样src/my-config-files里的文件也会被自动同步,请求时用my-config-files/env.json就行。

内容的提问来源于stack exchange,提问作者BBaysinger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:12:08