我是meteor的新手,我正在尝试进行多页应用,其中http://www.mydomain.com/page1
将导致与http://www.mydomain.com/page2
完全不同的页面。
完全不同,我的意思是我不希望客户端呈现页面
我尝试使用meteor-router,但我得到的是:
<!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>
我希望page2返回不同内容的不同元标记 为了清楚起见,我们假设我的客户有时没有javascript。我不问流星是否是正确的框架!我只问我是否能用流星做到这一点。
答案 0 :(得分:2)
与传统的LAMP堆栈相比,Meteor的工作方式略有不同。基本上,它通过将DOM修补到仅需要更改的位置,而不是重新下载整个网页。它在现代Web浏览器上提供了非常令人满意的最终用户体验。
要使用meteor路由器,您需要找到一个要用{{renderPage}}
的不同页面的新数据修补的地点。你可以使用像
<head>
<title>xx</title>
</head>
<body>
{{renderPage}}
</body>
<template name="page1">
<h2>Hello!</h2>
</template>
<template name="page2">
<h2>Ola!</h2>
</template>
现在您需要在客户端javascript中定义路由器:
Meteor.Router.add({
'/page1': 'page1',
'/page2': 'page2'
});
因此,如果您加载/page1
,您会看到Hello!如果你加载/page2
,你会看到奥拉!如<template name="page2">..</template>
使用元标记,您需要使用javascript来创建它们。有点像
$('head').append("<meta...");
这再次取决于您的偏好,我个人认为,与其他“瘦”网站相比,这些类型的应用在网页之间加载速度非常快。 (看看meteor.com,看看你能在页面之间切换的速度有多快)。但浏览器确实需要javascript。
值得注意的是,在生产模式中,只有1个脚本标记。