json - http从资产中获取在已发布的应用程序Angular 9中不起作用
问题描述
我使用 Angular +9,从资产文件夹读取 json 文件时遇到问题。
我正在使用 http 模块,并且当应用程序在本地运行时调用工作正常,但是当我运行 ng-build 并在服务器上发布应用程序时,对 json 文件的调用不起作用,指示以下消息:
错误资产/资源/fakeData.json 的 Http 失败响应:0 未知错误
我的代码:
可能是什么问题呢?为什么我不能直接访问 assets 文件夹?
解决方案
您的问题是您正在尝试使用HttpClient
. 你不能那样做。您当然可以创建一个返回您的 json 文件的 API 端点,但是您不能像使用HttpClient
模块那样直接访问它。
在这里我会做的是:
import * as myJson from '<path to fakeData.json>';
...
getData(): any {
return myJson;
}
如果你只是想弄乱HttpClient
模块并且需要一些 json 来玩,你可以使用JSON Placeholder API:
this.http.get('https://jsonplaceholder.typicode.com/todos/1');
根据下面的 SOF 问题,如果您愿意,您可以将本地 json 文件与 Angular 开发服务器一起托管:
推荐阅读
- javascript - 在 React 组件中选择内部组件
- wordpress - 如何让 mediawiki 安装和 wordpress 安装在同一个域中共享相同的用户登录和会话信息?
- javascript - 如何在 jQuery 中转义哈希 (#) 字符
- php - 动态 URLs PHP-HTML
- git - 无法创建分支内容并将其推送到 GitHub 存储库
- java - 覆盖/禁用@Startup 类
- android - 如何更新 Flatlist 中的项目值
- html - 图像未损坏但未显示
- elasticsearch - 文档创建时的 ElasticSearch 格式字段
- php - 请问如何编辑此代码以显示最多 200,000 条记录的表的页面行选择器