您应该将模板存储在CouchApp的哪里?

问题描述

| 在沙发数据库指南“管理设计文档”中,他们指出   _attachments目录包含作为二进制附件保存到Sofa设计文档中的文件。 CouchDB直接提供附件(而不是将其包括在JSON包装器中),因此我们在这里存储浏览器将直接访问的JavaScript,CSS和HTML文件。 然后再在_attachments文件夹之外,创建一个单独的文件夹来存储模板。这已经让我困惑了一段时间。我能够将模板包括在我的show函数中的唯一方式是它们是否位于_attachments文件夹之外。 我可以将模板放置在_attachments文件夹中,还是应该将它们放置在_attachments文件夹之外? 如果我可以/应该将它们放在_attachments文件夹中,如何在show函数调用它们?     

解决方法

如果要在服务器端呈现模板(
_show
_list
函数),则它们一定不能位于_attachments中,因为show和list函数无法访问附件。在这些函数中,变量“ 2”是从设计文档复制的Javascript对象。
this.templates.foo
来自项目中的
templates/foo.html
文件。 如果要在客户端(浏览器)侧渲染模板,则它们可能位于附件中或在设计文档中。这取决于什么对您更有效。使用存储在附件中的模板,您可以直接获取它们,并在客户端上使用它们。您只需在应用程序或网页中链接到它即可。您还可以将模板留在设计文档中,然后让客户端获取整个文档。然后,客户端可以使用ddoc中所需的任何模板。     ,通常,应将要直接提供给客户端的任何资源放在_attachments文件夹中。 couchapp脚本会将其他所有内容都放入了设计文档中。 沙发会在服务器端渲染小胡子模板。它通过设计文档获取模板:
Mustache.to_html(ddoc.templates.index,stash,ddoc.templates.partials,List.send);
您还可以选择将模板作为附件提供,通过CouchDB的API检索它们并在客户端呈现它们。 或者,您可以将它们保留在设计文档中,在客户端中检索包含模板的设计文档,然后在客户端呈现模板。 客户端和服务器上都有Javascript,可为您提供很大的自由度。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...