2017-03-28 4 views
0

Ich versuche, PrimeNG-Datentabelle zu implementieren, ich habe Daten in einer JSON-Datei namens cars-small.json, ich denke, dass der Pfad im Code korrekt ist, habe ich fast 20 Mal überprüft und auch überprüft, indem Sie den Namen geändert davon und Pfad dieser Datei aber immer 404 Fehler. DieseDateipfadfehler in Angular 2

ist, wie ich versuche, es zu bekommen:

@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; }); 
    } 
} 

Aber immer 404 Fehler angezeigt wird, lesen Sie in diesem Fehlerbild (https://imgur.com/StSFhUP) und der tatsächlichen Bildpfad (https://imgur.com/cxEHMJ6).

+0

beide zeigt das gleiche Bild – Sajeetharan

+0

Entschuldigung, ich aktualisiere es jetzt überprüfen –

+0

Stellen Sie sicher, dass die JSON-Datei zu den statischen Dateien webpack l hinzugefügt wird ist. –

Antwort

3

Ändern Sie die Datentabelle wie folgt Da App auf den Ordner bezieht, in dem die Anwendung in ist,

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

EDIT

Da Sie eine http.get machen, sollte es eine voll haben Pfad so, http://localhost:4200/services/cars-small.json

Kopieren Sie die jSON-Datei an den Vermögenswerten Ordner **src/assets/cars-small.json** und dann sollten Sie in der Lage sein, darauf zuzugreifen

datatable = "/assets/cars-small.json"; 
+0

bereits versucht es, gleichen Fehler –

+0

kann nicht sein, können Sie in URL einfügen und sehen, ob es lädt – Sajeetharan

+0

@MuhammadArslan Angular 2 verwendet relative Pfadangabe, Sie müssen etwas wie './Autos-small.json' verwenden – gelliott181

1

Da der App-Ordner nicht öffentlich ist, so setzen Sie Ihre cars-small.json in src/assets/cars-small.json und die Sie mit url so etwas wie

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

Denken Sie daran, zugreifen können, außer Vermögenswerte Ordner keinen anderen Ordner öffentlich ist, müssen Sie alle setzen Ihre gefälschten Daten darin wie Ihre anderen statischen Dateien Bilder usw.

+0

@Arsalan check die zweite Antwort es wird dein Problem lösen Ich habe schon so etwas getan –

+0

ja du hast Recht :) danke –

+0

so muss ich jede JSON-Datei in Asset-Ordner? –