【问题标题】:Manage and include Handlebars.js files with symfony 2.1 and Assetic使用 symfony 2.1 和 Assetic 管理和包含 Handlebars.js 文件
【发布时间】:2013-03-14 21:40:46
【问题描述】:

我想从我的 twig 文件中排除我的 handlebars.js 模板。

所以我在public 文件夹中创建了一个名为hbs 的新目录,其中放置了所有车把模板。我如何告诉资产渲染这些模板并用脚本标签包装它?

【问题讨论】:

    标签: symfony-2.1 handlebars.js assetic


    【解决方案1】:

    您需要 AsseticBundle 2.1.2 或更高版本。除此之外,您还需要做三件事:

    1. 安装车把编译器
    2. 配置资产过滤器以编译您的车把模板
    3. 在您的树枝模板中包含模板。

    安装编译器

    关注instructions on the handlebars website。或者,更短:

    npm install handlebars -g
    

    配置过滤器

    将此添加到您的配置文件中:

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

    这将告诉assetic 将handlebars 过滤器应用于所有以“.handlebars”结尾的文件,有效地将它们转换为已编译的handlebars 模板。您可以将设置调整为您喜欢的任何结局。

    如果您的车把编译器不在默认位置 (/usr/bin/handlebars),您可能需要告诉资产。为此,请使用车把过滤器的“bin”设置。例如,如果您已将其安装在项目的子目录中(通过使用不带 -g 选项的 npm),您的配置 可能看起来像这样:

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

    Twig 模板中的引用

    在你的 twig 模板中添加一个新的引用,类似于你将如何包含 javascript 文件:

    {% 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”。

    希望对您有所帮助...

    【讨论】:

    • 如果您的 node.js 可执行文件位于与 /usr/bin/node 不同的位置(例如,如果您通过官方安装程序将其安装在 Mac OS X 上,则在 /usr/local/bin/node 中),您需要添加 @987654328 @handlebars资产过滤器配置。
    【解决方案2】:

    您可以在 bin 中放置正确的车把路径。以下对我有用。

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

    使用获取车把的正确位置

    which handlebars
    

    【讨论】:

      猜你喜欢
      • 2012-09-24
      • 2015-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-10
      • 1970-01-01
      • 1970-01-01
      • 2012-08-23
      相关资源
      最近更新 更多