在couchDB指南"管理设计文档"中,他们指出
_attachments目录包含作为二进制附件保存到沙发设计文档中的文件。CouchDB直接为附件提供服务(而不是将它们包含在JSON包装中),因此这是我们存储浏览器将直接访问的JavaScript、CSS和HTML文件的地方。
然后在attachments文件夹之外创建一个单独的文件夹来存储模板。这件事已经困扰我一段时间了。我能够将模板包含在我的show函数中的唯一方法是,如果它们位于_attachments文件夹之外。
我可以将模板放在_attachments文件夹中吗?还是应该将它们放在_aattachments文件夹之外?
如果我可以/应该将它们放在_attachments文件夹中,我如何在我的show函数中调用它们?
如果要在服务器端呈现模板(_show
和_list
函数),则它们不能在_attachments中,因为show和list函数无法访问附件。在这些函数中,变量this
是从设计文档中复制的Javascript对象。this.templates.foo
将来自项目中的templates/foo.html
文件。
如果要呈现模板客户端(浏览器),它们可能位于附件中,或位于设计文档中。这取决于什么对你更有效。使用存储在附件中的模板,您可以直接获取它们,并在客户端上使用它们;你可以简单地在你的应用程序或网页中链接到它。您也可以将模板留在设计文档中,让客户端获取整个文档。然后,客户端可以从ddoc中使用它想要的任何模板。
通常,您应该将要直接提供给客户端的任何资源放在_attachments文件夹中。
couchapp脚本确实将所有其他内容都放在了设计文档中。
Sofa在服务器端渲染胡子模板。它通过设计文档获取模板:
Mustache.to_html(ddoc.templates.index, stash, ddoc.templates.partials, List.send);
您还可以选择将模板作为附件提供,通过CouchDB的API检索它们,并在客户端呈现它们。
或者,您可以将它们保存在设计文档中,在客户端中检索包含模板的设计文档,并在客户端呈现模板。
在客户端和服务器上都有Javascript,这给了你很大的自由。