我在Symfony 4项目中使用了Webpack Encore,并且在我的base.html.twig
中包含了JavaScript的Twig帮助器时:
{% block javascripts %}
{{ encore_entry_script_tags('app') }}
{% endblock %}
JavaScript无法加载,但是,当在我的一个模板(index.html.twig
)中包含完全相同的Twig帮助器时,JavaScript就会加载。
所以我的问题是,为什么上面的Twig帮助程序可以在我的模板之一中工作,而不在我的基本模板中工作?
答案 0 :(得分:2)
失败,因为它在您的javascript块内。
您的模板扩展了base.html.twig
,因此无论您在任何模板的javascript块中放置的内容如何,都将在javascript块之内。
但是如果您在base.html.twig
中执行相同的操作,它将被忽略。
只需将{{ encore_entry_script_tags('app') }}
移出您的JavaScript块即可。
base.html.twig
{{ encore_entry_script_tags('app') }}
{% block javascripts %}
{# nothing here, your templates will overwrite it when you extends base.html.twig #}
{% endblock %}
请记住:如果它在您的布局内,即base.html.twig
,则不要在{% block %}
标记内放置任何内容。它将被忽略。
答案 1 :(得分:2)