2016-11-15 5 views
7

Firebase를 사용하여 각도 2 앱을 호스트하려하지만 경로가 작동하지 않습니다.angular-cli Firebase hosting 각도 2 라우터가 작동하지 않습니다.

저는 정적 프라이버시 정책 페이지가 필요한 곳에서 작업하고있는 사이트에 2 각형 및 typescript가있는 프로젝트를 만들었습니다.

내가 내 브라우저에서 http://localhost:4200/privacy-policy

ng serve 

을 수행하고 이동하면 내가 기대하는 콘텐츠를. 여기

@NgModule({ 
    declarations: [ 
     AppComponent, 
     HomeComponent, 
     TermsOfServiceComponent, 
     PrivacyPolicyComponent, 
     PageNotFoundComponent 
    ], 
    imports: [ 
     AlertModule, 
     BrowserModule, 
     FormsModule, 
     HttpModule, 
     RouterModule.forRoot([ 
      {path: 'privacy-policy', component: PrivacyPolicyComponent}, 
      {path: 'terms-of-service', component: TermsOfServiceComponent}, 
      {path: '', component: HomeComponent}, 
      {path: '**', component: PageNotFoundComponent} 
     ]) 
    ], 
    providers: [], 
    bootstrap: [AppComponent] 
}) 
export class AppModule { 
} 
내가 중포 기지가 여기 내 프로젝트 호스팅으로 구성한

페이지 - 각 2 경로에서 권장하는 코드입니다 것은 내 설정이다 파일 -

{ 
    "database": { 
    "rules": "database.rules.json" 
    }, 
    "hosting": { 
    "public": "dist" 
    } 
} 

내가

을 실행 배포하는 방법
ng build --prod 
firebase deploy 

https://MY-APP.firebaseapp.com/로 이동하면앱이 기본 경로에 대해 정상적으로로드됩니다.

그러나 나는 그것이 NG가 제공했던 것처럼이 작업을 예상했을 것이다 나는 404

을 얻을 https://MY-APP.firebaseapp.com/privacy-policy 로 이동하려고 할 때.

도움을 주시면 감사하겠습니다. 당신의 app.module.ts 파일에서

답변

11

는 것을 다음을 추가합니다

import { LocationStrategy, HashLocationStrategy} from '@angular/common'; 

을 선언하고 공급 업체에이 문제를 해결할 수

@NgModule({ 
     declarations: [...], 
     imports:[...], 
     providers:[..,{ provide: LocationStrategy, useClass: HashLocationStrategy },..] 
     ..., 
    }) 

희망 다음을 추가합니다.

그리고 가능한 경우 경로를 별도의 파일로 유지하십시오.

건배

+0

이 내 문제가 해결되었습니다. 명확히하기 위해, 각도 j를 사용하는 firebase 호스팅에서 전체 경로에 대해 URL 단편을 사용해야한다고 말하고 있습니다. https://MY-APP.firebaseapp.com/#/privacy-policy –

16

늦은 응답,하지만 난 중포 기지 내 응용 프로그램을 배포 할 때 오늘 같은 문제에 직면하기 때문에, 여기에 빠른 그것에 대한 수정이다 : 당신의 firebase.json 파일에서

업데이트 을 정의하여 호스팅 키를 규칙 :

 
    "hosting": { 
    "public": "dist", 
    "rewrites": [ { 
     "source": "**", 
     "destination": "/index.html" 
    } ] 
    } 
+0

내 웹 애플리케이션에서 HashLocationStrategy를 사용하고 싶지 않으므로 그 대답입니다. 고마워요 @Vlad – andreasonny83

+0

이것은 나를 위해 일했습니다. – user482594

+0

이것은 받아 들여진 대답이어야합니다 –