私のtwigファイルからhandlebars.jsテンプレートを除外したい。
そこで、すべてのハンドルバーテンプレートを配置したpublic
という名前のフォルダーに新しいディレクトリを作成しました。hbs
これらのテンプレートをレンダリングしてスクリプトタグでラップするようにasseticに指示するにはどうすればよいですか?
私のtwigファイルからhandlebars.jsテンプレートを除外したい。
そこで、すべてのハンドルバーテンプレートを配置したpublic
という名前のフォルダーに新しいディレクトリを作成しました。hbs
これらのテンプレートをレンダリングしてスクリプトタグでラップするようにasseticに指示するにはどうすればよいですか?
AsseticBundle2.1.2以降が必要です。それ以外に、次の3つのことを行う必要があります。
コンパイラのインストール
ハンドルバーのウェブサイトの指示に従ってください。または、短い:
npm install handlebars -g
フィルタの構成
これを設定ファイルに追加します。
assetic:
filters:
handlebars:
apply_to: "\.handlebars$"
これにより、asseticは、「。handlebars」で終わるすべてのファイルにハンドルバーフィルターを適用し、それらをコンパイル済みのハンドルバーテンプレートに効果的に変換するように指示します。好みに合わせて設定を調整できます。
デフォルトの場所(/ usr / bin / handlebars)にない場合は、ハンドルバーコンパイラがどこにあるかをasseticに伝える必要があるかもしれません。そのためにハンドルバーフィルターの「ビン」設定を使用してください。たとえば、プロジェクトのサブディレクトリに(-gオプションなしでnpmを使用して)インストールした場合、構成は次のようになります。
assetic:
filters:
handlebars:
apply_to: "\.handlebars$"
bin: node_modules/handlebars/bin/handlebars
Twigテンプレートの参照
javascriptファイルを含める方法と同様に、Twigテンプレートに新しい参照を追加します。
{% javascripts
'@MyBundle/Resources/public/hbs/*.handlebars'
output='assets/my-handlebars-templates.js'
%}
<script type="text/javascript" src="{{ asset_url }}"></script>
{% endjavascripts %}
次に、プロジェクトでテンプレートを使用できます。それらはHandlebars.templates[templatename]に保存され、「template-name」は「.handlebars」を除くテンプレートのファイル名です。
お役に立てば幸いです...
ハンドルバーへの正しいパスをビンに入れることができます。以下は私のために働いた。
assetic:
filters:
handlebars:
apply_to: "\.handlebars"
bin: /usr/local/bin/handlebars
を使用してハンドルバーの正しい位置を取得します
which handlebars