1

我用 symfony2 构建了一个应用程序,该应用程序公开了一个 REST Api。

现在我建立一个简单的客户端来消费

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:Home: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:Home: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

在开发环境中,{{asset('js/templates/entradas.hbs') }} 生成的 URL 是什么?它有效吗?由于它可能无法正常工作,您会得到哪个错误?

于 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 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 回答