我想从我的树枝文件中排除我的 handlebars.js 模板。
因此,我在放置所有车把模板的public
文件夹中创建了一个新目录。hbs
我如何告诉资产渲染这些模板并用脚本标签包装它?
我想从我的树枝文件中排除我的 handlebars.js 模板。
因此,我在放置所有车把模板的public
文件夹中创建了一个新目录。hbs
我如何告诉资产渲染这些模板并用脚本标签包装它?
您需要 AsseticBundle 2.1.2 或更高版本。除此之外,你还需要做三件事:
安装编译器
按照车把网站上的说明进行操作。或者,更短:
npm install handlebars -g
配置过滤器
将此添加到您的配置文件中:
assetic:
filters:
handlebars:
apply_to: "\.handlebars$"
这将告诉assetic 将车把过滤器应用于所有以“.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”。
希望有帮助...
您可以在 bin 中放置正确的车把路径。以下为我工作。
assetic:
filters:
handlebars:
apply_to: "\.handlebars"
bin: /usr/local/bin/handlebars
使用获取车把的正确位置
which handlebars