0

사용자 정의 도메인 이름을 사용하여 Amazon S3에 백본 응용 프로그램을 호스팅하고 있습니다. 백본 응용 프로그램 라우터는 루트 ('/') 아래의 모든 경로를 처리합니다. pushState를 사용하고 싶습니다. 따라서 응용 프로그램 경로에 # 접두어가 필요하지 않습니다. 기본적으로 S3를 통해 모든 하위 경로가 도메인 루트로 라우팅되고 나머지는 백본이 처리하도록하고 싶습니다. pushState를 사용하는 backbone.js 응용 프로그램 용 S3 웹 호스팅

나는 다음 규칙 추가 :

<RoutingRules> 
    <RoutingRule> 
    <Condition> 
    <HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals > 
    </Condition> 
    <Redirect> 
     <HostName>mydomain.com</HostName> 
     <ReplaceKeyPrefixWith>#</ReplaceKeyPrefixWith> 
    </Redirect> 
    </RoutingRule> 
</RoutingRules> 

을하지만 이것은 단지 내 모든 하위 경로에 # 기호 접두사를 추가합니다. 나는 그것을 피하고 싶다.

S3 버킷에서 #을 추가하지 않고 모든 것을 색인 된 문서로 라우팅하도록 리디렉션 규칙을 설정하려면 어떻게해야합니까? 대신 도메인 URL의

답변

0

사용 버킷 URL :

<a href="/home">Home</a> 
<a href="/about">About</a> 

그런 다음 jQuery를을 사용하여 :

<HostName>BUCKET_NAME.s3-website-ap-northeast-1.amazonaws.com</HostName>

은 또한 앵커 링크 대신이 같은 링크가 URL <a href="#home">Home</a>에서 #을 해달라고 확인 라우터에 대한 링크를 탐색 할 수 있습니다.

$(document).on('click', 'a[href^="/"]', function (e) { 
    e.preventDefault(); 
    var href = $(e.currentTarget).attr('href'); 
    Backbone.history.navigate(href, { trigger: true }); 
}); 
관련 문제