Angular 2: file non trovato sul file .json locale

Ho visto alcuni post diversi sul fatto di non essere in grado di trovare file locali per aprirli se si tratta di immagini o file di dati, ma nessuna delle soluzioni ha funzionato per me. La mia ipotesi sarebbe che ci fosse qualche configurazione che mi manca.

Il file che sto cercando si trova in una cartella denominata “data” allo stesso livello dei miei file app.html e app.ts.

Ecco cosa ho in app.html, PS sto usando anche Ionic2:

 

e nel file app.ts ho:

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

Ho provato:

 ./data/data.json data/data.json app/data/data.json 

e qualsiasi altro percorso. E tutti restituiscono un errore 404 file non trovato. Questo sembra proprio come i dolori della crescita con familiarizzare con Angular 2. Grazie in anticipo

Le risposte precedenti hanno detto di metterlo direttamente nella cartella www per renderlo disponibile all’app. Direi che questa non è la soluzione migliore dato che la cartella www è esclusa usando .gitignore in un progetto Ionic2 appena creato.

Inseritelo invece nella cartella src/assets e sarà anche reso disponibile in App e NON sarà escluso dal repository git (di default). Quindi è ansible accedere utilizzando: this.http.get('assets/file.json');

È ansible modificare il file .gitignore, ma potrebbe essere ansible includere altri file non necessari.

Non mi sono reso conto che lavorando con Ionic è ansible compilare tutto nella cartella dell’app e inserirlo nella cartella www / build. Quindi quando ho inserito un percorso nella cartella dell’app non compilata non mi sono reso conto che il file in cui sto inserendo il percorso non è dove penso che sia.

Quindi ho fatto due cose, ognuna funzionava. Inserisco i file direttamente nel file www (non li inserisco nel file di build poiché verranno eliminati ogni volta che si esegue ionic serve), quindi corregge il percorso di conseguenza. Oppure aggiusta il percorso sapendo che quando cerchi un file nella tua app.ts, deve uscire da www / build per primo.

Per chiunque sia interessato a risolvere lo stesso problema. Se si utilizza la CLI angular e si desidera rendere qualsiasi cartella accessibile tramite http come in questo caso la cartella “dati”.

Vai a Angular-CLI.JSON quindi aggiungi “il nome della cartella” che è “dati” sotto apps -> assets

 "apps": [ { "root": "src", "outDir": "dist", "assets": [ "assets", "favicon.ico", "data" ], 

Il tuo server è in grado di vedere la cartella ‘/ data’? Assicurati che il tuo file JSON si trovi nella stessa directory dei tuoi file pubblici / statici.