Где вы должны хранить шаблоны в своем приложении CouchApp?

В руководстве CouchDB, Управление проектной документацией, говорится, что

Каталог _attachments содержит файлы, которые сохраняются в документе дизайна дивана в виде двоичных вложений. CouchDB обслуживает вложения напрямую (вместо того, чтобы включать их в оболочку JSON), поэтому именно здесь мы храним файлы JavaScript, CSS и HTML, к которым браузер будет обращаться напрямую.

затем они создают отдельную папку для хранения своих шаблонов вне папки _attachments. Это то, что меня озадачивает некоторое время. Единственный способ, которым я смог включить шаблоны в свои функции шоу, - это если они находятся вне папки _attachments.

Могу ли я поместить свои шаблоны в папку _attachments или их следует размещать за пределами папки _attachments?

Если я могу/должен поместить их в папку _attachments, как я могу вызвать их в своих функциях шоу?


person Danger Doug    schedule 25.05.2011    source источник


Ответы (2)


Если вы хотите отображать шаблоны на стороне сервера (функции _show и _list), они не должны находиться в _attachments, поскольку функции show и list не имеют доступа к вложениям. В этих функциях переменная this является объектом Javascript, скопированным из проектного документа. this.templates.foo будет исходить из файла templates/foo.html в вашем проекте.

Если вы хотите отображать шаблоны на стороне клиента (браузера), они могут находиться во вложениях, или в документе дизайна. Это зависит от того, что работает лучше для вас. С шаблонами, хранящимися во вложениях, вы можете получить их напрямую и использовать в клиенте; вы можете просто сослаться на него в своем приложении или на веб-странице. Вы также можете оставить шаблоны в дизайнерском документе и позволить клиенту получить этот документ целиком. Затем клиент может использовать любые шаблоны из ddoc.

person JasonSmith    schedule 25.05.2011
comment
Не требуется размещать шаблоны в _attachments для рендеринга на стороне клиента. У вас есть доступ к дизайн-документу на клиенте, тогда вы можете получить их оттуда. Например, это то, что делает Evently. Это также может быть более эффективным, поскольку вы получаете их все с помощью одного HTTP-запроса. - person Marcello Nuccio; 26.05.2011
comment
Привет! Это именно то, что я искал. Итак, как я буду хранить свои шаблоны? Обычно у меня был бы тег скрипта с текстом/шаблоном типа мема прямо внутри моей html-страницы, а затем я бы захватил его с помощью jquery. Что мне нужно будет хранить в моем дизайн-документе в свойстве верхнего уровня шаблонов? - person Costa Michailidis; 02.04.2012

Как правило, вы должны поместить в папку _attachments любой ресурс, который вы хотите предоставить клиенту напрямую.

Сценарий кушетки помещает все остальное в проектный документ.

Sofa выполняет рендеринг на стороне сервера шаблонов усов. Он получает шаблоны через проектный документ:

Mustache.to_html(ddoc.templates.index, stash, ddoc.templates.partials, List.send);

Вы также можете использовать шаблоны как вложения, извлекать их через API CouchDB и отображать на стороне клиента.

Или вы можете сохранить их в документе дизайна, получить документ дизайна, содержащий шаблоны, в клиенте и визуализировать шаблоны на стороне клиента.

Наличие Javascript как на клиенте, так и на сервере дает вам большую свободу.

person Marcello Nuccio    schedule 25.05.2011