9

MeteorJS アプリケーションからメールを送信する必要があり、 「html-in-js」のものではなく、html テンプレートを使用してメールを生成したいと考えています。
私がやろうとしたこと:
1) を使用Template.emailTemplate(data)しますが、Templateサーバー側で定義されていません。
2) 電子メール テンプレートを*.htmlファイルとして<app>/server/email/templatesディレクトリの下に保存し、それらのコンテンツを使用して取得し、fs.readSync()流星の組み込みhandlebarsパッケージを使用してコンパイル/レンダリングします。これは開発環境では正常に機能しますが、ディレクトリの下のファイルがバンドルされていない
ため、バンドルされたアプリを使用する本番環境では失敗します。また、バンドル処理中にディレクトリの構造が変更され、テンプレートへの相対パスが無効になります。 3) あなたの提案は? =) *.htmlserver

4

3 に答える 3

14

現在、テンプレートはサーバー側でサポートされていません。その機能が来ています。それまでの間、サーバー上でハンドルバーを使用できるようにする、handlebars-server という便利なパッケージを作成しました。パッケージを大気とともに使用するか、プロジェクト ディレクトリをパッケージ フォルダーにコピーして使用できます。次に例を示します。

例:

私の電子メール.handlebars

Hello, {{name}}

サーバー.js

Email.send({
  html: Handlebars.templates['my-email']({ name: 'Chris' })
});

ノート

ハンドルバー ファイルにテンプレートがありません。html と Handlebars 式を配置するだけです。ファイルは関数にコンパイルされ、Handlebars.templates オブジェクトのプロパティに割り当てられます。プロパティ名は、ファイルの名前からハンドルバーの拡張子を引いたものになります。

ギットハブ

https://github.com/eventedmind/meteor-handlebars-server

于 2013-05-14T22:28:56.713 に答える