Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将所有主干模板放在一个JS文件中以便放在CDN上的最佳方法是什么?_Javascript_Ruby On Rails_Backbone.js_Underscore.js - Fatal编程技术网

Javascript 将所有主干模板放在一个JS文件中以便放在CDN上的最佳方法是什么?

Javascript 将所有主干模板放在一个JS文件中以便放在CDN上的最佳方法是什么?,javascript,ruby-on-rails,backbone.js,underscore.js,Javascript,Ruby On Rails,Backbone.js,Underscore.js,我希望在一个JS文件中包含所有主干模板,以便通过CDN轻松分发。理想情况下,它还应该与Rails资产编译工作流配合使用 可能的解决方案#1: 一个JS文件,所有模板声明如下: app.templates.view = " \ <h3>something code</h3> \ "; app.templates.view=”\ 代码\ "; 太乱了。缺少突出显示 可能的解决方案#2: 包含所有内联模板的单个html文件。在我的主控文档中包含该部分 <script

我希望在一个JS文件中包含所有主干模板,以便通过CDN轻松分发。理想情况下,它还应该与Rails资产编译工作流配合使用

可能的解决方案#1:

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

app.templates.view = " \
<h3>something code</h3> \
";
app.templates.view=”\
代码\
";
太乱了。缺少突出显示

可能的解决方案#2:

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

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

  • 我无法利用通过CDN分发的缩小JS文件的好处。模板将与我的HTML文件内联

    可能的解决方案#3:

    使用Require.js,但它似乎无法解决在一个js文件中包含所有模板的问题。

    请看一看。它为开发JavaScript客户端提供了一个非常好的工作流。它实际上只是一个聚集到超级简单工作流中的大量任务的集合。它所做的一件事是将所有下划线(或把手)模板编译成JST(如Rails)。它使用“grunt contrib jst”来实现这一点,并将模板输出到“generated/template/underline.js”。然后,它会将所有JS编译成一个文件,尽管您可以轻松地单独引入.JS文件


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

    感谢您的回复。我最后给出了可能的解决方案#2,其中我有一组模板,并使用Rails部分包含在主文件中。目前,通过CDN分发模板没有多少好处


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

    类似Grunt任务的东西怎么样?但这对rails资产管道不起作用。。。因此,您可以轻松地将下划线模板预编译到单个JavaScript文件中。您可以使用grunt从html模板、concat和压缩模板js文件生成模块。你可以看看这个