Couchdb 您应该在couchapp中将模板存储在哪里?

Couchdb 您应该在couchapp中将模板存储在哪里?,couchdb,couchapp,Couchdb,Couchapp,在couchDB指南中,他们指出 _attachments目录包含作为二进制附件保存到Sofa设计文档的文件。CouchDB直接提供附件(而不是将附件包含在JSON包装器中),因此我们在这里存储浏览器将直接访问的JavaScript、CSS和HTML文件 然后,他们在_attachments文件夹之外创建一个单独的文件夹来存储模板。这件事让我困惑了一段时间。它们是我能够在show函数中包含模板的唯一方法,如果它们位于_attachments文件夹之外 我可以将模板放在_attachments文件

在couchDB指南中,他们指出

_attachments目录包含作为二进制附件保存到Sofa设计文档的文件。CouchDB直接提供附件(而不是将附件包含在JSON包装器中),因此我们在这里存储浏览器将直接访问的JavaScript、CSS和HTML文件

然后,他们在_attachments文件夹之外创建一个单独的文件夹来存储模板。这件事让我困惑了一段时间。它们是我能够在show函数中包含模板的唯一方法,如果它们位于_attachments文件夹之外

我可以将模板放在_attachments文件夹中,还是放在_attachments文件夹之外


如果我可以/应该将它们放在_attachments文件夹中,我如何在我的show functions中调用它们?

一般来说,您应该在_attachments文件夹中放入您希望直接为客户端提供服务的任何资源

couchapp脚本将所有其他内容都放在设计文档中

Sofa对模板进行服务器端呈现:

您还可以选择将模板作为附件,通过CouchDB的API检索它们,并在客户端呈现它们

或者,您可以将它们保存在设计文档中,在客户端检索包含模板的设计文档,并在客户端呈现模板


客户端和服务器上都有Javascript,这给了您很大的自由。

如果您想在服务器端呈现模板(
\u show
\u list
函数),它们不能在附件中,因为show和list函数无权访问附件。在这些函数中,变量
this
是从设计文档复制的Javascript对象
this.templates.foo
将来自项目中的
templates/foo.html
文件


如果要在客户端(浏览器)呈现模板,它们可能位于附件或设计文档中。这取决于什么对你更有效。使用存储在附件中的模板,您可以直接获取它们,并在客户端上使用它们;您只需在应用程序或网页中链接即可。您还可以将模板保留在设计文档中,让客户机获取整个文档。然后,客户端可以从ddoc使用它想要的任何模板。

客户端呈现不需要将模板放入附件中。您可以访问客户机上的设计文档,然后从那里获取它们。例如,这就是Evently所做的。这也可以更有效,因为您只需一个HTTP请求即可获得所有这些内容。您好!这正是我要找的。那么我该如何存储我的模板呢?通常,我会在html页面中有一个带有meme类型文本/模板的脚本标记,然后用jquery获取它。我需要在templates顶级属性下的设计文档中存储什么?
Mustache.to_html(ddoc.templates.index, stash, ddoc.templates.partials, List.send);