繁体   English   中英

在Meteor中如何在服务器端渲染模板?

[英]In Meteor how to render the templates on server side?

我遵循了本教程并用它构建了它: http//x111.meteor.com/但是你可以看到加载速度非常慢,因为meteor从客户端加载数据。

当我想在Meteor.isServer使用全局Template时,我收到此错误:

ReferenceError: Template is not defined
at app/products.js:56:3 ...

如何从服务器端提供模板,以便我不必等待客户端?

试试这个 该软件包增加了对Meteor中服务器端Handlebars的支持。 在Meteor发布服务器端渲染支持之前,它主要用作服务器端电子邮件html的止损。

> mrt add handlebars-server

即使代码在客户端html中,模板也随服务器一起提供。 他们花费很长时间的原因是流星集合在第一次加载时下载到客户端的步骤。

更新:我知道这不是你要求的确切内容,但滞后的根本原因不是模板系统。

核心问题是浏览器和服务器之间延迟 您需要将服务器放置得离您更近,以消除此滞后/使其缩短,就像使用任何Web服务器一样。

如果您无法使服务器靠近,您可以显示loading ...消息,以便用户知道数据很快就会可用。

{{#unless CartItems.count}}
    <tr>
        <td colspan="4">Loading...</td>
    </tr>
{{else}}
    {{#each CartItems}} 
        <tr>
           <td>{{Name}}</td>
           <td>${{Price}}</td>
           <td>{{Quantity}}</td>
           <td>${{Total}}</td>
        </tr>
     {{/each}}
{{/unless}}

目前没有内置的方法来实现这一点,但添加服务器端模板渲染是一项计划的功能(虽然我还没有在路线图上看到它):

此版本的spiderable专门针对搜索引擎。 Meteor的未来版本还将在初始页面加载时将HTML发送到Web浏览器。 Meteor模板系统专为支持此用例而设计。

http://meteor.com/faq/can-meteor-serve-static-html

虽然人们会说这违反了“仅通过网络发送数据”的理念,但对于需要良好搜索引擎优化的网站来说,这是非常必要的,当服务器和服务器都具有相同的模板语言和框架时,这也是很自然的事情。客户。

如果您在Node.JS框架中寻找这种类型的功能,我建议使用Derby.JS http://derbyjs.com/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM