2013-05-05 3 views
1

나는 유성을 처음으로 접하며 http://www.mydomain.com/page1이 완전히 다른 페이지가되는 http://www.mydomain.com/page2 인 다중 페이지 응용 프로그램을 만들려고합니다.
전혀 다른 점은 클라이언트에서 페이지를 렌더링하고 싶지 않다는 의미입니다.
나는 유성 라우터를 사용하려하지만 내가 가진 것은 무엇인가 같다 :자바 스크립트가없는 다중 페이지 응용 프로그램을위한 유성 실제 라우터

<!DOCTYPE html> 
<html> 
<head> 
    <link rel="stylesheet" href="/myapp.css?9297ad4aa173c4e0c19aebd27c62a5c43242bb93"> 


<script type="text/javascript"> 
__meteor_runtime_config__ = {"ROOT_URL":"http://localhost:3000","serverId":"iMp4kgzzeqDtktJoY"}; 
</script> 

    <script type="text/javascript" src="/packages/underscore/underscore.js?6d71e6711255f43c0de8090f2c8b9f60534a699b"></script> 
    <script type="text/javascript" src="/packages/meteor/client_environment.js?07a7cfbe7a2389cf9855c7db833f12202a656c6b"></script> 
    <script type="text/javascript" src="/packages/meteor/helpers.js?2968aa157e0a16667da224b8aa48edb17fbccf7c"></script> 
... 
...MANY MANY MANY SCRIPTS.... ?!? 
... 
... 
    <script type="text/javascript" src="/myapp.js?2866dcdb5c828b129cdd3b2498a4bf65da9ea43f"></script> 


<title>myapp</title> 
</head> 
<body> 

</body> 
</html> 

그리고 이것은 내가 원하는 것이 아니다. 나는 page1 경로가 나를 돌려 주길 원한다.

<!DOCTYPE html> 
<html> 
<head> 
    My meta tags 
</head> 
<body> 
    page1 
</body> 
</html> 

그리고 다른 내용으로 다른 메타 태그를 돌려 주길 바란다.
분명히하기 위해 내 클라이언트가 언젠가 javascript를 가지고 있지 않다고 가정 할 수 있습니다. 유성이 올바른 프레임 워크인지 묻지 않습니다! 유성으로 할 수 있을지 만 묻고 있습니다.

답변

2

Meteor은 기존 LAMP 스택과 조금 다른 방식으로 작동합니다. 기본적으로 DOM을 패치하여 전체 웹 페이지를 다시 다운로드하지 않고 변경 사항이 필요한 부분에만 적용됩니다. 최신 웹 브라우저에서 매우 만족스러운 최종 사용자 경험을 제공합니다.

유성 라우터를 사용하려면 {{renderPage}}으로 다른 페이지의 새로운 데이터로 패치하려는 지점을 찾아야합니다. 당신은 이제 당신의 클라이언트 측에서 자바 스크립트를 라우터를 정의 할 필요가

<head> 
    <title>xx</title> 
</head> 

<body> 
{{renderPage}} 
</body> 

<template name="page1"> 
    <h2>Hello!</h2> 
</template> 

<template name="page2"> 
    <h2>Ola!</h2> 
</template> 

같은 것을 사용할 수 있습니다

Meteor.Router.add({ 
    '/page1': 'page1', 
    '/page2': 'page2' 
}); 

당신이 안녕 볼 것이다 당신이 /page1를로드 그렇다면! 그리고 /page2을로드하면 Ola가 표시됩니다. <template name="page2">..</template>

메타 태그를 사용하면 자바 스크립트를 사용하여 메타 태그를 만들어야합니다.

$('head').append("<meta..."); 

같은 것을 다시이 개인적으로 내가 다른 '얇은'를 기반으로 웹 사이트에 비해 웹 페이지 사이에 엄청나게 빠른 애플리케이션로드의이 유형을 찾아, 환경 설정에 따라 달라집니다. (meteor.com에서 얼마나 빨리 페이지를 바꿀 수 있는지보십시오.) 그러나 브라우저에는 javascript가 필요합니다.

생산 모드에서는 스크립트 태그가 1 개만 있습니다.

+0

나는 이걸 정확히 했는데도 소스를 보았을 때, 화면에 내용이있는 곳에 바디 요소가 비어있었습니다. 이것은 JavaScript가 필요하다는 것을 이해하는 방법입니다. 따라서 귀하의 대답을 이해할 때 JavaScript가 없으면 머리 부분을 포함한 페이지를 서버에 완전히 렌더링 할 수있는 방법이 없습니다. 나 맞아? – Naor

+0

예, 그렇습니다. 서버 측 라우팅을 사용하여 원하는 방식으로 수행 할 수 있지만 유성의 모든 멋진 반응 기능을 놓칠 수 있습니다. – Akshat

+0

정말 유성을 사용하고 싶지만 유감스럽게도 JavaScript 지원이없는 작은 요구 사항이 있습니다 .. 감사합니다! – Naor