Я прочитал любую другую статью или пост об этом, который я могу найти.Я не могу на всю жизнь понять, где я ошибаюсь с этой простой задачей.(В частности, следуя этому примеру .) Я, должно быть, делал что-то явно глупое, но я смотрел на это так долго, что не вижу его.
У меня есть файл json с именем isRecognized.json в активах / mockData.Я добавил каталог mockData в свой файл конфигурации webpack, чтобы он был включен в каталог / dist.Если я зайду на http: localhost: 4200 / assets / mockData / isRecognized.json, я смогу увидеть файл, поэтому я знаю, что он доступен.
Однако, когда я пытаюсь получить файл с помощью HTTP-клиента, он выдает 404 независимо от того, что я пытаюсь.
РЕДАКТИРОВАТЬ: я использую Webpack, а не Angular CLI.
app.component.ts
import { MyService } from './services/my.service';
import { Component, OnInit, Renderer2 } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
/*
* Main app component that houses all views.
*/
@Component({
selector: 'app-comp',
templateUrl: './app.component.html'
})
export class AppComponent implements OnInit {
constructor(
private route: ActivatedRoute, private service: MyService
) {}
ngOnInit() {
this.service.isRecognized();
}
}
my.service.ts
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/catch';
import 'rxjs/add/observable/throw';
@Injectable()
export class MyService {
constructor(private http: HttpClient) { }
isRecognized() {
this.getJSON('isRecognized').subscribe(data => {
console.log(data);
});
}
getJSON(fileName): Observable<any> {
return this.http.get('http://localhost:4200/assets/mockData/' + fileName + '.json');
}
}
Ошибка, которую я получаю в консоли браузера:
AppComponent_Host.ngfactory.js? [sm]:1 ERROR Error: [object Object]
at viewWrappedDebugError (core.js:9795)
at callWithDebugContext (core.js:15101)
at Object.debugCheckAndUpdateView [as checkAndUpdateView] (core.js:14628)
at ViewRef_.webpackJsonp../node_modules/@angular/core/esm5/core.js.ViewRef_.detectChanges (core.js:11605)
at core.js:5913
at Array.forEach (<anonymous>)
at ApplicationRef.webpackJsonp../node_modules/@angular/core/esm5/core.js.ApplicationRef.tick (core.js:5913)
at core.js:5746
at ZoneDelegate.webpackJsonp../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (zone.js:391)
at Object.onInvoke (core.js:4756)
Если я отлаживаю ошибку, я вижу тело ошибки: