2013-03-25 11 views
6

とHandlebars.jsファイルが含まれています。管理し、私は私の小枝ファイルから私のhandlebars.jsテンプレートを除外したいのsymfony 2.1とAssetic

私はすべてのハンドルバーテンプレートを配置したhbsという名前のpublicフォルダに新しいディレクトリを作成しました。これらのテンプレートをレンダリングし、それをスクリプトタグでラップするにはどうすればよいのでしょうか?

答えて

9

あなたはAsseticBundle 2.1.2以降が必要です。それに加えて、あなたは3つのことを行う必要があります。

  1. ハンドルコンパイラ
  2. をインストールし、あなたのハンドルバーテンプレート
  3. をコンパイルするasseticフィルタを設定して、あなたの小枝テンプレートのテンプレートが含まれています。コンパイラ

    instructions on the handlebars websiteに従ってインストール

。または、短い:

npm install handlebars -g 

フィルタの設定

は、あなたの設定ファイルにこれを追加します。

assetic: 
    filters: 
     handlebars: 
      apply_to: "\.handlebars$" 

これが「で終わるすべてのファイルにハンドルバーのフィルタを適用するasseticを教えてくれます。ハンドルバー "を作成し、効果的にコンパイルされたハンドルバーテンプレートに変換します。あなたは好きなように設定を調整することができます。

ハンドルバーのコンパイラがデフォルトの場所(/ usr/bin/handlebars)にない場合は、asseticに指示する必要があります。そのためにハンドルバーフィルターの "bin"設定を使用してください。小枝テンプレート

assetic: 
    filters: 
     handlebars: 
      apply_to: "\.handlebars$" 
      bin: node_modules/handlebars/bin/handlebars 

参考:あなたは(-gオプションなしでNPMを使用して)、プロジェクトのサブディレクトリにインストールしている場合たとえば、あなたのコンフィグ は次のようになります。あなたの小枝テンプレートに、javacriptファイルの挿入方法と同様の新しい参照を追加してください。

{% 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"を除くテンプレートのファイル名です。

希望するもの...

+0

を使用してハンドルバーの右の場所がすごいゲット。ありがとう! –

+1

ノードの場合。js実行可能ファイルは '/ usr/bin/node'とは別の場所にあります(例えば、Mac OS Xにインストールした場合は'/usr/local/bin/node'にあります) :/ path/to/node'を 'handlebars' asseticフィルタ設定に変更します。 – chiborg

0

ハンドルバーの正しいパスをbinに入れることができます。次は私のために働いた。

assetic: 
    filters: 
     handlebars: 
      apply_to: "\.handlebars" 
      bin: /usr/local/bin/handlebars 

which handlebars 
関連する問題