2012-10-04 12 views
0

저는이 두 기술에 익숙하지 않으며 내 앱을 구성하는 최선의 방법이 궁금합니다. hastags가없고 pushState 만 사용하고 싶습니다. 또한 렌더링 측면에서 서버 측과 클라이언트 측을 섞은 것이 가장 좋았지 만이를 설정하는 방법을 모르겠습니다. 나는 그것을 하나 또는 다른 방법으로 알아낼 수 있었지만 함께하지는 못했습니다.pushState를 사용한 익스프레스 및 백본 라우팅

익스프레스 노선

app.get('/', site.index); 
app.get('/product/:id', wiki.show); 

이 pushState를 사용하지 않고 잘 작동하지만 지금 내가 어떻게 함께 두 가지를 결합 할 다시 : 나는에 어딘지 지금 여기로

은?

답변

1

하이브리드 클라이언트/서버 응용 프로그램을 만들려면 클라이언트와 서버가 모든보기를 렌더링 할 수 있어야합니다. 사용자가 사이트를 방문하면 서버는보기를 렌더링하고 html을 사용자에게 보냅니다. 이 시점에서 클라이언트 측 앱이로드되고 모든 상대 링크가 가로 채어 져 백본 탐색으로 대체되어야합니다.

$(document).on('click', 'a:not([data-bypass])', function(e){ 
    href = $(this).prop('href') 
    root = location.protocol+'//'+location.host+'/' 
    if (root===href.slice(0,root.length)){ 
    e.preventDefault(); 
    Backbone.history.navigate(href.slice(root.length), true); 
    } 
}); 

코드 행은, 백본 응용 프로그램이 시작되면, 대신 서버에 해당 페이지에 대한 요청을 보내는 클라이언트 응용 프로그램에서 데이터 바이 패스 속성과 화재 라우팅 기능없이 모든 앵커 태그를 잡을 것입니다. 데이터 우회 속성을 추가하여 경로 기능을 실행하지 않는 링크를 만듭니다.

관련 문제