角 - 部署JSON文件火力

问题描述:

摘要角 - 部署JSON文件火力

  • 我有一个角项目与模拟数据
  • 当我生成项目,我坚持JSON文件到“DIST一个JSON文件“文件夹
  • 我有一个角服务,引用JSON文件
  • 我部署到火力和收到错误
  • 请原谅这里认识不足,特别新本

问题

  1. 是否有可能使用JSON文件而在本地主机的工作?
  2. 我对Firebase的部署做了什么错误?

服务

import { IProjects } from './projects.interface'; 
 

 
@Injectable() 
 
export class ProjectsService { 
 
    private _projectURL = '/dist/projects-list.json'; 
 

 
    constructor(private _http: Http) { } 
 

 
    getProjects(): Observable<IProjects[]> { 
 
     return this._http.get(this._projectURL) 
 
      .map((response: Response) => <IProjects[]> response.json()) 
 
      .do(data => console.log('All: ' + JSON.stringify(data))) 
 
      .catch(this.handleError); 
 
    } 
 

 
    getProject(id: number): Observable<IProjects> { 
 
     return this.getProjects() 
 
      .map((projects: IProjects[]) => projects.find(p => p.projectId === id)); 
 
    } 
 

 
    private handleError(error: Response) { 
 
     console.error(error); 
 
     return Observable.throw(error.json().error || 'Server error'); 
 
    } 
 
}

显示的项目清单

列表组件

export class ProjectsListComponent implements OnInit { 
 
    pageTitle = "Project List"; 
 
    errorMessage: string; 
 
    projects: IProjects[]; 
 

 
    constructor(private _projectsService: ProjectsService) { 
 

 
    } 
 

 

 
    ngOnInit(): void { 
 
     this._projectsService.getProjects() 
 
      .subscribe(projects => this.projects = projects, 
 
      error => this.errorMessage = <any>error); 
 
    } 
 

 
    onRatingClicked(message: string): void { 
 
     this.pageTitle = 'Project List: ' + message; 
 
    } 
 
}
0123在浏览器中 enter image description here

收到

错误任何帮助,将不胜感激:)

你需要添加模拟JSON文件中assets文件夹中的角项目。

,你可以像这样访问

getProjects(): Observable<IProjects[]> { 
     return this._http.get("assets/projects-list.json") 
      .map((response: Response) => <IProjects[]> response.json()) 
      .do(data => console.log('All: ' + JSON.stringify(data))) 
      .catch(this.handleError); 
    } 

注: - 你需要添加静态文件,就像在资产文件夹图像或配置文件。角度只能访问资产文件夹。

+0

谢谢@jonnysai! - 我已经尝试过,没有太多的运气。但是,当我运行“ng build - watch”时,json文件现在出现在assets文件夹中。当我部署到Firebase和本地(本地主机)时,我收到同样的错误,但似乎无法找到该文件。 (“无法加载资源:服务器响应状态为404(未找到)” – MegaTron

+0

我不知道Firebase,但它应该在本地工作。尝试服务 – CharanRoot

+0

啊,我已经在本地和Firebase上都能工作。 url需要是“assets/projects-list.json”,如果你更新了答案,我会将它标记为“回答”,因为你已经在那里教会了我一些新的东西,谢谢你的时间Jonny,非常感谢。 – MegaTron