6

私のtwigファイルからhandlebars.jsテンプレートを除外したい。

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

4

2 に答える 2

9

AsseticBundle2.1.2以降が必要です。それ以外に、次の3つのことを行う必要があります。

  1. ハンドルバーコンパイラをインストールします
  2. ハンドルバーテンプレートをコンパイルするためのアセットフィルターを構成する
  3. Twigテンプレートにテンプレートを含めます。

コンパイラのインストール

ハンドルバーのウェブサイトの指示に従ってください。または、短い:

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

お役に立てば幸いです...

于 2013-04-19T21:46:02.110 に答える
0

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

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

を使用してハンドルバーの正しい位置を取得します

which handlebars
于 2013-11-26T12:25:48.893 に答える