需要一些关于在Underscore中管理模板的最佳方法的意见。我正在构建Backbone应用程序并使用Underscore来管理模板。我开始在' template.js'中做这样的事情。文件。
templates = {
template1: '<h1>Some HTML</h1>',
template2: '<h1>Some more HTML and a <%= variable %></h1>
...
}
这变得混乱。快速。所以,我查看了RequireJS的text plugin,这使得它更清洁。现在,我有一堆HTML文件,我基本上将它存储到我的&#39;模板&#39;宾语。像这样:
define(['text!/templates/template1.html',
'text!/templates/template2.html',
...],
function(template1, template2, ...) {
return {
template1: template1,
template2: template2,
....
}
});
所以现在问题是HTTP请求。仅对于模板,我有5个请求 - 1个用于template.js文件,然后是4个单独的HTML模板文件。这个名单将继续增长。我想的一件事是将所有HTML放在一个文件中,但这似乎与AMD方法无关。随着应用程序的进展,我可以更聪明地做到这一点,并且只在必要时加载HTML模板 - 如果它们全部分开。
是否有解决所有HTML请求的方法?我认为这不是生产环境中的好习惯。
对于如何完成我想要做的事情,任何人都有任何其他想法吗?
答案 0 :(得分:4)
这是RequireJS Optimizer的用途。它将您的所有模块组合到一个文件中,作为预部署构建过程的一部分。根据{{3}}:
文本文件是通过异步XMLHttpRequest(XHR)调用加载的,因此您只能从与网页相同的域中获取文件(请参阅下面的XHR限制)。
但是,RequireJS优化器会内联任何文本!引用实际的文本文件内容到模块中,所以在构建之后,有文本的模块!可以从其他域使用依赖项。