Angular 2:在本地.json文件上找不到文件
Angular 2: file not found on local .json file
我看到过一些不同的帖子,说无法找到本地文件来打开它们,无论它们是图像还是数据文件,但没有一个解决方案对我有效。我猜我缺少一些配置。
我要查找的文件位于名为"data"的文件夹中,与我的app.html和app.ts文件位于同一级别。
以下是我在app.html中的内容,PS我也在使用Ionic2:
<ion-menu (click)='getDepartments()' side='right' type='overlay' [content]="content">
在app.ts文件中,我有:
getDepartments() {
this.http.get('/data/data.json')
.map(res => res.json())
.subscribe(
data => this.departments = data,
err => console.log(err),
() => console.log('Random Quote Complete')
);
}
我试过:
./data/data.json
data/data.json
app/data/data.json
以及任何其他路径。它们都返回一个404文件未找到错误。这看起来就像是熟悉Angular 2的成长之痛。提前感谢
以前的回答说直接将其放在www
文件夹中,以便应用程序可以使用。我认为这不是最好的解决方案,因为在新创建的Ionic2项目中使用.gitignore
排除了www
文件夹。
相反,将它放在src/assets
文件夹中,它也将在应用程序中可用,并且不会从git repo中排除(默认情况下)。然后您可以使用:this.http.get('assets/file.json');
访问
您可以修改.gitignore文件,但随后可能会包含其他不必要的文件。
我没有意识到使用Ionic时,它会编译应用程序文件夹中的所有内容,并将其放入www/build文件夹中。因此,当我把一个路径放在未编译的应用程序文件夹中时,我没有意识到我把路径放在的文件不是我认为的位置
所以我做了两件事,每件都奏效了。我把文件直接放在www文件中(不要把它们放在构建文件中,因为每次运行ionic serve时它们都会被删除),然后相应地修复路径。或者只需修复路径,知道当你在app.ts中查找文件时,它需要首先退出www/build。
对于任何有兴趣解决相同问题的人。如果您使用的是Angular CLI,并且希望通过http访问任何文件夹,在本例中为"data"文件夹。
转到Angular-CLI.JSON,然后在应用程序->资产下添加"文件夹名称",即"数据"
"apps": [
{
"root": "src",
"outDir": "dist",
"assets": [
"assets",
"favicon.ico",
"data"
],
您的服务器能够看到文件夹'/data'吗?确保JSON文件与公共/静态文件位于同一目录中。
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- 不显示带有本地json文件数据的谷歌地图脚本
- 可以't使用Appcelerator将JSON文件解析为JavaScript中的TableView
- 加载两个具有相同父密钥名称的json文件
- 使用JSON文件中的变量(字符串)填充文本区域
- 动态显示JSON文件内容
- 将JSON转换为放入Sdcard中的CSV文件
- 正在尝试将JSON文件放入JS数组
- 如何检查Json文件更新,如果更新了,则用更新的数据刷新我的页面
- 单击按钮更改加载到表中的JSON文件
- 创建一个包含两个文件 json 的 Angularjs 过滤器
- Multer上传文件+JSON对象
- 使用node.js读取和写入文件(JSON)
- 如何在angularjs中设置变量's值来上传文件json数据
- 向现有文件. Json写入Json,没有“语法错误”
- 如何保存更新json(文件json)与jquery或javascript
- AngularJS:当使用$http请求一个文件(json content)时发生SyntaxError
- 如何简化此代码?将文件json转换为数组json
- 如何从外部文件JSON创建JAVASCRIPT数组