json - 无法读取角度 5 中的 json 文件?
问题描述
嗨,我正在 Angular 5 中开发 Web 应用程序。我正在尝试使用 http 调用读取 json 文件,如下所示。我收到 404 错误。下面是我的 service.ts 文件。Json 文件也保留在同一文件夹中,因此路径可能是正确的。
public GetNodes() {
return this.http.get('./json1.json');
}
下面是我的组件代码。
ngOnInit() {
this.nodeservice.GetNodes().subscribe(data =>
console.log(data)
);
我已经完成了一项工作,发现我的静态文件应该在 assets 文件夹中。我将 json1.json 移动到 assets 文件夹并尝试访问。我仍然收到相同的 404 错误。下面是我的 json 文件保存的完整路径
项目名称\ClientApp\app\components\Utilities
我正在使用 ./json1.json 因为我的服务和 json 文件位于同一个文件夹实用程序中。
有人可以帮我解决这个问题吗?任何帮助,将不胜感激。谢谢你。
解决方案
要访问任何资产数据,如图像或文件,您需要将它们放在资产文件夹中并从那里访问它,因为角度加载资产文件夹中的所有公共数据,因此任何资产都无法从组件的文件夹中访问。
对于文件“./json1.json”,URL 将是HOST_Name/json1.json,将所有文件放在 assets 文件夹中并提供 assets 文件夹的路径不会更好。
您还可以更改“angular.json”中的资产配置以指向组件的文件夹以访问该 json 文件。
推荐阅读
- java - 使用 Spring 数据和 Java 重命名 Mongodb 集合中的字段
- sql - 如果第一个查询为空,则从第二个查询返回 PostgreSQL 函数
- sas - 如何根据 SAS 中的观察值进行计数
- vue.js - Vuetify - 如何在 v-dialog 中重置子组件
- c# - 如何刷新winforms设计器
- python - 无法读取 UTF-16 文件
- virtualbox - 命令提示符此时卡住了
- reactjs - 在 Gatsby 中找不到 MDX 模块
- elixir - Elixir:a for each 中的 a for each 等价于什么?
- stripe-payments - 如何继续当前订阅直到它结束,然后在条带中切换计划