2017-05-24 1 views
0

AWS에서 정적 웹 사이트를 호스팅하여 컴퓨터에서 프로젝트를 빌드하고 싶습니다. 각도 프로젝트입니다. dist/디렉토리에는 업로드해야하는 모든 파일이 들어 있습니다. 내 등록 된 호스트 이름에 따라 특정 버켓이 있습니다.S3 웹 호스팅이 왜 내 위치로 리디렉션됩니까?

나는 아마존 튜토리얼에 따라 내 S3 버킷에 내 DNS 이름을 연결하는 경로 53을 구성했습니다.

내 S3가 웹 호스트로 구성되었으므로 ACL이 유효하므로 CORS 액세스와 CORS 액세스 및 "# /"을 제거하는 리디렉션 규칙이 있습니다. 참을성없는 기다림 30 분이 경과 한 후 등록 된 DNS 이름에 연결하여 'myexample.com'이라고 말하면 내 웹 사이트를 볼 수 있습니다.

지금은 시간이 흐르고 모든 것을 바꾸고 싶습니다. 내 양동이에있는 모든 데이터를 삭제하고 다른 웹 사이트 파일을 안에 넣습니다.

여기에 문제가 있습니다. 'myexample.com'으로 이동하면 이상한 URL로 리디렉션됩니다. "pictureStatic/# /" 이상하지만 실제로는 컴퓨터의 저장소 이름입니다. 내 S3 버킷의 "리디렉션 규칙"구성에서 사용했던 이름이기도합니다. 이전의 호스팅 된 웹 사이트 때문입니다. 따라서 리디렉션 규칙은 삭제되지만 리디렉션은 그대로 유지됩니다. "호스트 이름": "PictureStatic" "프로토콜": "HTTP" "ReplaceKeyPrefixWith": "# /"나는 그런 경로 (53) 문제 나 뭔가 생각

그래서 난 재 내 리디렉션 규칙

내 컴퓨터에있는 파일을 다른 디렉토리에 복사하고 "picurestatic"단어를 제거하십시오. 프로젝트를 빌드합니다. 빌드 파일을 다른 테스트 버킷에 업로드하고 웹 호스트로 구성합니다. 나는 route53 영역에 대한 링크를 만들지 않고 대신 버킷에 직접 URL을 사용합니다. 내 웹 사이트는 완벽하게 작동합니다.

내 버킷 이름 "myexample.com"을 내 등록 된 이름에 맞게 삭제합니다 (내 경로는 필수 항목 임). 53 구성), 내 버킷에 대한 권한이 구성되었다는 것을 제외하고는 내 테스트 버킷의 구성과 완전히 동일하게 처음부터 다시 만듭니다.

CORS는 다음과 같습니다 ACL은

<?xml version="1.0" encoding="UTF-8"?> 
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> 
<CORSRule> 
    <AllowedOrigin>*</AllowedOrigin> 
    <AllowedMethod>GET</AllowedMethod> 
    <AllowedMethod>PUT</AllowedMethod> 
    <MaxAgeSeconds>3000</MaxAgeSeconds> 
    <ExposeHeader>GET</ExposeHeader> 
    <ExposeHeader>PUT</ExposeHeader> 
    <AllowedHeader>Authorization</AllowedHeader> 
</CORSRule> 
</CORSConfiguration> 

: 읽을 객체/권한 개체에 대한 모든

권한은 다음과 같습니다

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Sid": "PublicReadGetObject", 
      "Effect": "Allow", 
      "Principal": { 
       "AWS": "*" 
      }, 
      "Action": "s3:GetObject", 
      "Resource": "arn:aws:s3:::myexample.com/*" 
     } 
    ] 
} 

것은 그때 나의 버킷에 액세스 할 때 경유지없이 직접 도로 53, 따라서 : myexample.com.s3-website-MyRegion.amazonaws.com

다른 테스트 버킷이 똑같은 동작으로 잘 작동하더라도 여전히 내 "pictureStatic/# /"로 리디렉션됩니다.

이 리디렉션을 제거하는 방법을 알지 못합니다. 참고 route53은 테스트에서 사용하지 않기 때문에 요점은 "myexample.com"이라는 버킷을 수정해야한다는 것입니다. 그렇지 않으면 route53이 (가) 내 등록 된 DNS 이름을 더 이상 사용하지 못하게합니다. 같은 이름.

버킷 "myexample.com"을 테스트 용 버킷으로 리디렉션하도록 구성하려고했지만 아무 것도 변경하지 않았습니다.

누군가가이 리디렉션의 이유를 알려주십시오.

+0

여기 AngularJs는 어디에 있습니까? – Ved

+0

실제로. 그것은 모호한 프로젝트이지만, 거기에 태그를다는 것은 쓸모가 없습니다. 태그가 제거되었습니다. –

답변

0

나는 문제의 원인을 발견했으며, 그것은 다소 어리 석다. 개인 모드로 브라우저를 사용할 때 더 이상 문제가 없으므로 내 응용 프로그램의 문제보다 브라우저의 로컬 캐시에 문제가 있습니다.

관련 문제