В компоненте service.ts url: "http://localhost:4200/data/products.json" не найдено - PullRequest
0 голосов
/ 11 апреля 2019

Я получаю сообщение об ошибке 404 в этой строке кода "return this.http.get ('../ data / products.json');"

, где путь - "src \app \ shared \ services \ product.service.ts "для файла service.ts.Путь к файлу json: "src \ data \ products.json"

Это код service.ts:

import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';

export interface Product {
  id: number;
  title: string;
  price: number;
  imageUrl: string;
  description: string;
}

@Injectable()
export class ProductService {
  constructor(private http: HttpClient) {}

  getAll(): Observable<Product[]> {
    return this.http.get<Product[]>('../data/products.json');
  }

  getById(productId: number): Observable<Product> {
    return this.http.get<Product[]>('../data/products.json')
      .pipe(
        map(products => <Product>products.find(p => p.id === productId))
      );
  }
}

1 Ответ

1 голос
/ 11 апреля 2019

Попробуйте поместить папку json в папку ресурсов, например:

src\assets\mock\products.json

и затем вы изменяете путь в вашем методе:

getAll(): Observable<Product[]> {
    return this.http.get<Product[]>('assets/mock/products.json')
}
...