2016-11-08 5 views
4

heroku에 angular2 응용 프로그램이 있는데 라우터에 문제가 있습니다. localhost에서는 모든 것이 매력처럼 작동하지만 heroku에 배포하고 인덱스가 아닌 다른 경로로 액세스하려고하면 404 오류가 발생합니다. 색인을 생성하면 탐색 페이지가 탐색됩니다. 페이지를 다시로드하지 않으면 라우팅이 정상적으로 발생합니다. 그 다음 404 패키지가 있습니다. 내 패키지의 일부입니다 .jroke by heroku "heroku-prebuild": "npm install http-server -g", "heroku-postbuild": "ng build --target=production --environment=prod && rsync -a dist/* .", "start": "http-server dist/", Procfile에서 사용할 고속 재 작성을 설정해야합니까?heroku의 Angular2 라우팅

+0

그냥 제안 - https://m.alphasights.com/using-nginx-on-heroku-to-serve-single-page-apps-and-avoid-cors-5d013b171a45#.1yk8sb720 –

+0

에서 HTML5 라우팅을 검색하십시오. 'AppModule' 제공자에게'{provide : LocationStrategy, useClass : HashLocationStrategy} '를 추가 할 수도 있습니다. http://stackoverflow.com/questions/36861628/location-and-hashlocationstrategy-stopped-working-in-beta-16 –

+0

@ GünterZöchbauer 'HashLocationStrategy'가 NGINX를 사용하는 유일한 방법이 없다면? –

답변

0

서버에서 문제가있는 것 같습니다. 각도는 라우팅을 알고 있지만 서버는 이러한 경로를 모두 알지 못합니다. 간단한 해결책은 모든 경로를 기본 index.html로 리디렉션하는 것입니다. 이처럼

app.get('*', function (req, res) { 
    res.sendfile('./dist/index.html'); // load our index.html file 
}); 

이 어떤 404 오류를 제공하지 않습니다, 모든 경로는이 로컬 호스트에 있던 같은 실행됩니다 index.html을하고 각 라우팅 즉 기본 경로로 리디렉션됩니다.

+0

나는 여전히 문제가있다. 나는 이것을 이미 적용했다. 그리고 그것은 내부 오류를 보여주는 루트가 아닌 페이지의 새로 고침 페이지 일 뿐이다. – MurWade

관련 문제