2017-03-28 4 views
0

私はPrimeNGデータテーブルを実装しようとしていますが、cars-small.jsonというJSONファイルにデータがあります。パスはコード内で正しいと思います。私はほぼ20回チェックし、名前を変更してチェックしましたそのファイルのパスは表示されますが、常に404エラーが表示されます。アングル2のファイルパスエラー

これは、私はそれを取得しようとしています方法です:

@Injectable() 
export class CarService { 

datatable = "app/services/cars-small.json"; 
url = this.datatable; 

constructor(private http: Http) {} 

getCarsSmall() { 
    return this.http.get(this.url) 
       .toPromise() 
       .then(res => <Car[]> res.json().data) 
       .then(data => { return data; }); 
    } 
} 

しかし、常に404エラーを取得し、このエラー画像(https://imgur.com/StSFhUP)と実際のイメージパス(https://imgur.com/cxEHMJ6)を確認してください。アプリはアプリケーションが入っているフォルダを参照しますので、次のように

+0

は両方とも同じイメージを表示 – Sajeetharan

+0

申し訳ありません、私は今すぐチェックしてください –

+0

jsonファイルがwebpack静的ファイルに追加されていることを確認してください。 ist。 –

答えて

3

変更データテーブル、

datatable = "/services/cars-small.json"; 

EDIT

あなたがhttp.getを作っているので、それは完全なを持っている必要があります資産フォルダ**src/assets/cars-small.json**へのパスのような、http://localhost:4200/services/cars-small.json

コピーJSONファイルと、あなたはそれ

にアクセスすることができるはずです
datatable = "/assets/cars-small.json"; 
+0

すでに試してみましたが、同じエラー –

+0

はできません。ロード – Sajeetharan

+0

@MuhammadArslan Angular 2は相対的なパスを使用しますが、 '。/ cars-small.json'のようなものを使用する必要があります – gelliott181

1

appフォルダがパブリックではありませんのでので、あなたcars-small.jsonsrc/assets/cars-small.jsonに入れて、あなたが

http://localhost:4200/assets/cars-small.json

のようなものが資産を除いて覚えているURLにアクセスすることができますが、他のフォルダは公開されていないフォルダすべて配置する必要がありますあなたのモックデータは、他の静的なファイルイメージのように

+0

@Arsalanチェックアウトあなたの問題を解決する2番目の答え –

+0

はいいいえ:) –

+0

アセットフォルダにすべてのjsonファイルを置く必要がありますか? –

関連する問題