2017-09-08 2 views
0

저는 Angular4 응용 프로그램을 구축했으며 모든 것이 잘 작동하지만 배포 후에 이상한 문제에 직면했습니다.
/ : 다음 AppComponent
/login의 경우 : LoginComponent
/editor에 대한 :
나는 3 개 루트가 나는 네비게이터의 URL 표시 줄에 쓸 때 내 EditorComponent

에 대한 개발 모드를 localhost://4200/login 또는 localhost://4200/editor 잘 작동하지만, 내가 배포 후 그것을 할 때 404 Page not found !!
그러나 routerLink이라는 각도를 사용하여 <a routerLink="/login">Login</a>을 클릭하면 클릭하면 LoginComponent으로 리디렉션됩니다.

routerLink를 사용할 때 (배포 후) 모든 것이 잘 작동하지만 탐색기의 URL 표시 줄에서 직접 구성 요소에 액세스하려고하면 404 Page not found가 발생합니다.Angular4 : 배포 이후 문제

답변

0

브라우저의 실제 주소가 업데이트 중이므로 (# 접근없이) 애플리케이션을 새로 고침하거나 직접 액세스 할 때 404 오류가 발생합니다.

404 오류가 발생하지 않도록하려면 서버를 으로 업데이트해야합니다. 정의한 각 경로 경로에 대해 index.html 파일을 제공해야합니다. 당신이 HashBang 방식으로 전환하려면

, 당신은이 구성을 사용해야합니다 AppModule.ts

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

providers:[ 
{provide: LocationStrategy, useClass: HashLocationStrategy} 
] 
이 경우

에서

, 당신은 페이지를 새로 고침 할 때, 다시 표시 될 것입니다 (단, 귀하의 주소에는 #이 표시됩니다).

+0

파일에서 HashBang 접근 방식을 선언해야합니까? 프록시 배열 – SlimenTN

+0

하지만 탐색기 바에서 직접 액세스하려면 url에'# '을 추가해야합니다. –

+0

에있는 appmodule.ts 파일의 – SlimenTN