【问题标题】:Client-Side Rendering: How to leverage server/client side templates?客户端渲染:如何利用服务器/客户端模板?
【发布时间】:2013-02-06 09:50:46
【问题描述】:

我目前正在实现一个 ruby​​/sinatra 应用程序,它使用 erb 作为渲染引擎,同时使用把手/胡须模板进行客户端渲染。我正在实现一个特定的列表视图,其中列表元素将在存在 javascript 时使用客户端解决方案呈现,而在不存在时回退到服务器端(以这种方式定位爬虫)。但是我留下了以下问题:我基本上有两个模板用两个不同的标记编写,它们产生相同的 html。我很想“一次编写,到处运行”。其他项目如何利用这个问题?

【问题讨论】:

    标签: erb template-engine mustache


    【解决方案1】:

    我在 Sinatra 中使用过 sinatra-mustache,效果很好。我没有将它用于来自相同模板文件的客户端和服务器端模板,但您应该也可以这样做。

    【讨论】:

    • 是否兼容其他模板引擎?我只想在里面写我的原型模板,其他的东西,比如布局,我更喜欢使用 erb/helper rails/sinatra 机制。
    【解决方案2】:

    我发现答案是在服务器端使用您最喜欢的模板风格,但在模板将在客户端共享的情况下使用其他一些模板引擎。所以,我大部分时间都在使用 erb,其余时间使用poirot(用于 Rails)。这在动作包上集成了 Mustache 模板,无论如何都可以处理多个模板引擎。 Poirot 已经准备好在文档上编写模板以及客户端渲染库的助手。它还集成了车把和 hogan 模板,它们是胡须扩展。

    至于 Sinatra,我尝试使用 erb 和 https://github.com/defunkt/mustache 使用相同的方法,但 poirot on rails 的良好集成必须手动完成。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      • 1970-01-01
      • 2011-07-26
      • 2012-01-17
      • 1970-01-01
      • 2018-01-05
      相关资源
      最近更新 更多