Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.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/visual-studio-2008/2.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
Angular 收到http://localhost:4200/api/listOfProducts/products.json 404(未找到)_Angular - Fatal编程技术网

Angular 收到http://localhost:4200/api/listOfProducts/products.json 404(未找到)

Angular 收到http://localhost:4200/api/listOfProducts/products.json 404(未找到),angular,Angular,在我的Angular2应用程序中,文件夹的组织如下所示 Project | +-- file 1 | +-- api //folder | | | | +-- listOfProducts //folder | | +-- products.json //file +-- src //folder | | + | +-- app //folder | +-- product //fo

在我的Angular2应用程序中,文件夹的组织如下所示

 Project
 |
 +-- file 1
 |    
 +-- api //folder
 |   |  
 |   | +-- listOfProducts //folder
 |          |
            +-- products.json //file 
 +-- src //folder
 |  |  
 +  | +-- app //folder
          | +-- product //folder
                 +-- product.service.ts
                 +-- product-list.component.ts
                 +-- //other files
product.service.ts如下所示:

 import {Injectable} from '@angular/core';
 import {Http, Response} from '@angular/http';
 import {Observable} from 'rxjs/Observable';
 import 'rxjs/add/operator/map';
 import 'rxjs/add/operator/do';
 import 'rxjs/add/operator/catch';

 import {IProduct} from './product';


 @Injectable()

 export class ProductService{

private _productUrl = 'api/listOfProducts/products.json';
   // here 404 error

constructor(private _http: Http) {}

getProducts(): Observable<IProduct[]> {

    return this._http.get(this._productUrl)
               .map((response: Response) => <IProduct[]> response.json())
               .do(data=>console.log("All: " + JSON.stringify(data)))
              .catch(this.handleError);

}

private handleError(error: Response) {
    console.error(error);
    return Observable.throw(error.json().error || "Server error");
  }

}
从'@angular/core'导入{Injectable};
从'@angular/Http'导入{Http,Response};
从“rxjs/Observable”导入{Observable};
导入'rxjs/add/operator/map';
导入'rxjs/add/operator/do';
导入“rxjs/add/operator/catch”;
从“./product”导入{IPProduct};
@可注射()
出口类产品服务{
private _productUrl='api/listOfProducts/products.json';
//这里是404错误
构造函数(私有http:http){}
getProducts():可观察{
返回此。\ http.get(此。\产品URL)
.map((response:response)=>response.json())
.do(data=>console.log(“All:+JSON.stringify(data)))
.接住(这个.把手错误);
}
私有句柄错误(错误:响应){
控制台错误(error);
返回Observable.throw(error.json().error | |“服务器错误”);
}
}
现在,在我运行我的应用程序之后,我得到了以下错误

得到404(不是 发现)

我知道问题是路径目录键入错误,但我尝试了几个路径,仍然无法解决问题。问题是我还不知道Angular2如何读取文件。
从根目录和下面,或者从您所在的文件和上面?

组织您的项目与此无关,因为应该可以从服务器访问文件。dist文件夹的结构外观很重要。确保dist文件夹(位于live服务器上)包含json文件。如果没有,则需要配置webpack

就个人而言,我认为更好的解决方案是将模拟数据与其他资产一起保存在src catalog f.e.中,方法如下:

src
|
+- app
|
+- assets
  | 
  +- css
  |
  +- img
  |
  +- mock-data
     |
     your.json

组织您的项目与此无关,因为文件应该可以从服务器访问。dist文件夹的结构外观很重要。确保dist文件夹(位于live服务器上)包含json文件。如果没有,则需要配置webpack

就个人而言,我认为更好的解决方案是将模拟数据与其他资产一起保存在src catalog f.e.中,方法如下:

src
|
+- app
|
+- assets
  | 
  +- css
  |
  +- img
  |
  +- mock-data
     |
     your.json

如果使用Angular CLI和ng serve运行Angular应用程序,则所有json文件都应位于assets文件夹下。

如果使用Angular CLI和ng serve运行Angular应用程序,所有json文件都应位于assets文件夹下。

该文件在上不可访问server@RomanC如何在服务器上访问此文件?在服务器上无法访问此文件server@RomanC我怎样才能在服务器上访问这个文件?K:你的答案很好。为了在服务器上访问文件,json文件必须放在src/assetin中。事实上,这取决于网页的配置:)没问题,broK:你的答案很好。为了在服务器上访问文件,json文件必须放在src/assetin中。事实上,这取决于webpack的配置:)没问题,兄弟