1

アプリが REST Api を公開する symfony2 を使用してアプリを構築しました。

今、私は消費するための単純なクライアントを構築します

app.coffee -> app.js

App = Em.Application.create
    ready: ->
        @.entradas.load()
    Entrada: Em.Object.extend()
    entradas: Em.ArrayController.create
        content: []
        load: ->
            url = 'http://localhost/api/1/entrada'
            me = @
            $.ajax(
                url: url,
                method: 'GET',
                success: (data) ->
                    me.set('content', [])
                    for entrada in data.data.objects
                        me.pushObject DBPlus.Entrada.create(entrada)
            )

MyBundle:ホーム:index.html.twig

<script type="text/x-handlebars" src="{{ asset('js/templates/entradas.hbs') }}"></script>
<script src="{{ asset('js/libs/jquery-1.7.2.min.js') }}"></script>
<script src="{{ asset('js/libs/handlebars-1.0.0.beta.6.js') }}"></script>
<script src="{{ asset('js/libs/ember-1.0.pre.min.js') }}"></script>
<script src="{{ asset('js/app.js') }}"></script>

ここでの問題は、環境で実行し、アプリが機能しないdevようにテンプレートをリンクすると、何も表示されず、環境で正常に機能することです。<script type="text/x-handlebars" src="{{...}}">prod

環境で機能する唯一の方法devはインラインテンプレートです

MyBundle:ホーム:index.html.twig

<script type="text/x-handlebars">
    {% raw %}
    <ul class="entradas">
      {{#each App.entradas}}
        <li class="entrada">{{nombre}}</li>
      {{/each}}
    </ul>
    {% endraw %}
</script>

config_dev.yml

資産構成

assetic:
    debug:          %kernel.debug%
    use_controller: false
    bundles:        [ ]
    #java: /usr/bin/java
    filters:
        cssrewrite: ~
        #closure:
        #    jar: %kernel.root_dir%/Resources/java/compiler.jar
        #yui_css:
        #    jar: %kernel.root_dir%/Resources/java/yuicompressor-2.4.7.jar

なぜこの振る舞いを説明できますか?

注: デバッグ プロファイラー ツールバーを無効にしましたが、何もありません

4

3 に答える 3

0

これによって生成されるURLはどれですか:{{asset('js / templates / entradas.hbs')}}開発環境では?それは機能しますか?おそらく機能していないので、どのエラーが発生しますか?

于 2012-10-17T17:12:12.873 に答える
0

rake-pipeline を使用して、次のコードで AssetFile を作成しました。

output BUILD_DIR
input SRC_DIR do
  match '**/*.handlebars' do
    handlebars :precompile => true
    concat 'template.js'
  end
end

そして私のlayout.html.twigインクルード

<script src="{{ asset('js/template.js') }}"></script>
于 2012-10-18T22:24:31.780 に答える
0

小枝 Twig_Environment を変更してみてください

    $this->options = array_merge(array(
        'tag_comment'     => array('{$', '$}'),
        'tag_block'       => array('{%', '%}'),
        'tag_variable'    => array('<%', '%>'),
        'whitespace_trim' => '-',
        'interpolation'   => array('${', '}'),
    ), $options);

パス:\lib\Twig\Lexer.php

于 2014-02-13T08:24:41.600 に答える