什么是最好的方式有所有骨干模板在一个单独的JS文件,以便它可以放在CDN

What is the best way to have all Backbone templates in a single JS file so that it can be put on CDN?

本文关键字:一个 文件 单独 JS CDN 方式 什么      更新时间:2023-09-26

我想把所有的骨干模板在一个单一的JS文件,这样我就可以很容易地通过CDN分发它。理想情况下,它还应该与Rails资产编译工作流一起工作。

可能解决方案#1:

一个单独的JS文件,所有模板声明如下:

app.templates.view = " '
<h3>something code</h3> '
";

太乱。缺少高亮。

可能解决方案#2:

一个单独的html文件,所有的模板内联。在我的主文档中包含部分。

<script type="text/template" id="list-item">
    <li><%= item %></li>
</script>

我不能使用通过我的CDN分发的最小化JS文件的好处。模板将与我的HTML文件内嵌。

可能解决方案#3:

使用Require.js,但它似乎不能解决在一个JS文件中包含所有模板的需要。

看一下Lineman。它为开发JavaScript客户端提供了一个非常好的工作流程。它实际上只是Grunt任务的集合,聚合成一个超级简单的工作流。它所做的事情之一是将所有的Underscore(或Handlebars)模板编译成jst(如Rails)。它使用"grunt-contrib-jst"来完成这项工作,并将模板输出到"generated/template/underscore.js"。然后,它将所有JS编译成一个文件,尽管您可以轻松地单独导入. JS文件。

它可能会给你指明正确的方向。

感谢您的回复。我以可能的解决方案#2结束,其中我有一堆模板,并使用Rails部分包含在主文件中。目前,通过CDN分发模板没有太多好处。

*我没有选择使用Grunt,因为我认为它在工作流程中增加了额外的复杂性,考虑到团队中的所有开发人员都必须采用新的工作流程