3

couchDB ガイドのManaging Design Documentsで、彼らは次のように述べています。

_attachments ディレクトリには、Sofa デザイン ドキュメントにバイナリの添付ファイルとして保存されるファイルが含まれています。CouchDB は添付ファイルを (JSON ラッパーに含めるのではなく) 直接提供するため、ブラウザが直接アクセスする JavaScript、CSS、および HTML ファイルをここに保存します。

さらに下に、_attachments フォルダーの外に、テンプレートを格納する別のフォルダーを作成します。これは、しばらくの間私を困惑させてきたものです。テンプレートをショー関数に含めることができた唯一の方法は、テンプレートが _attachments フォルダーの外にある場合です。

テンプレートを _attachments フォルダーに配置できますか、それとも _attachments フォルダーの外に配置する必要がありますか?

それらを_attachmentsフォルダー内に配置できる/配置する必要がある場合、show関数でそれらを呼び出すにはどうすればよいですか?

4

2 に答える 2

2

原則として、クライアントに直接提供するすべてのリソースを _attachments フォルダーに配置する必要があります。

カウチアプリ スクリプトは、他のすべてをデザイン ドキュメントに入れます。

ソファは口ひげテンプレートのサーバー側レンダリングを行います。設計ドキュメントからテンプレートを取得します

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

テンプレートを添付ファイルとして提供し、CouchDB の API を介して取得し、クライアント側でレンダリングすることもできます。

または、それらを設計ドキュメントに保持し、クライアントでテンプレートを含む設計ドキュメントを取得し、クライアント側でテンプレートをレンダリングできます。

クライアントとサーバーの両方で Javascript を使用すると、多くの自由が得られます。

于 2011-05-25T05:53:01.587 に答える
2

テンプレートをサーバー側 (_showおよび_list関数) にレンダリングする場合は、それらを _attachments に含めてはなりません。これは、show および list 関数が添付ファイルにアクセスできないためです。これらの関数では、変数thisはデザイン ドキュメントからコピーされた Javascript オブジェクトです。プロジェクト内のファイルthis.templates.fooから取得されます。templates/foo.html

テンプレートのクライアント (ブラウザー) 側をレンダリングする場合は添付ファイルまたはデザイン ドキュメントにある可能性があります。それはあなたにとって何がうまくいくかによって異なります。添付ファイルに格納されたテンプレートを使用すると、テンプレートを直接取得して、クライアントで使用できます。アプリやウェブページで簡単にリンクできます。テンプレートを設計ドキュメントに残して、クライアントにそのドキュメント全体を取得させることもできます。その後、クライアントは ddoc から必要なテンプレートを使用できます。

于 2011-05-25T05:53:26.833 に答える