2016-12-08 1 views
0

나는 webpack과 함께 Angular 2를 사용하는 정적 파일 호스팅을 필요로하지 않는 웹 응용 프로그램을 가지고 있습니다 ... html5 스타일 라우팅 (해시 대신 슬래시)을 사용하고 있습니다. AWS S3 Bucket에서 호스팅하고 싶습니다. 사용자가 내 앱의 루트로 이동하면 S3 버킷이 index.html을 제공하며 모든 것이 정상입니다. 사용자가 라우터를 사용하여 myapp.com/routename으로 가져 오는 버튼을 클릭하면 기술적으로 페이지가 다시로드되지 않기 때문에 제대로 작동합니다. 그러나 사용자의 진입 점이 myapp.com/routename 인 경우 브라우저는 해당 URL에 대한 요청을 수행하고 S3는 index.html이 응답해야하는 항목인지 여부를 알 수 없습니다. S3 라우팅 설정을 사용해 보았습니다 ...하지만 라우팅 설정은 실제로 urlbar에서 URL을 변경하는 리디렉션을 수행 할 수있는 것 같습니다. 예를 들어, myapp.com/routename을 myapp.com으로 리디렉션한다고하면 해당 URL에서 index.html을 제공하는 것이 아니라 브라우저에서 URL을 변경하여 사용자를 "/"경로로 다시 보냅니다. 리디렉션 대신 일반 라우팅을 수행하도록 S3 버킷을 구성하는 방법이 있습니까?html5 스타일 라우팅에서 작동하도록 AWS S3 Bucket 라우팅을 구성하려면 어떻게해야합니까?

+1

관련 http://stackoverflow.com/questions/28063945/configure-amazon-s3-static-site-with-angular-js-ui-router-html5modetrue-on-pag – jarmod

+0

AWS 포럼 https : //에서 해당 게시물을 볼 수 있습니다. forums.aws.amazon.com/thread.jspa?threadID=244746 – John

+0

@jarmod 예 고맙습니다. 해시를 추가하고 (다시 각도를 제거하면) 작동하는 것처럼 보입니다. 그러나 할 일이 있어야한다고 생각합니다. 이것은 해시를 전혀 사용하지 않고 있습니다. – John

답변

1

이론적으로 index.html을 404.html과 같은 것으로 복사 한 다음 S3 설정의 "오류 문서"섹션에이 파일 이름을 입력 할 수 있습니다. 표시 할 페이지가 없으면 (오류 404) S3에 해당 문서가 표시됩니다.

그래도 작동해야하지만 끔찍한 생각입니다. 브라우저는 여전히 HTTP 헤더에 404 HTTP 코드를 수신합니다.

+0

예 "문서를 찾을 수 없음"시나리오를 처리하는 것이 적절한 솔루션이라고 생각합니다. 404를 반환하는 것은 확실히 이상적이지 않습니다. 나는 당신이 물건의 CloudFront면에서 이것을하면 200을 반환 할 수 있다는 것을 알았다. – John

관련 문제