Webpack Encore не загружает JavaScript в базовый шаблон - PullRequest
0 голосов
/ 09 мая 2019

Я использую Webpack Encore в своем проекте Symfony 4 и при включении помощника Twig для JavaScript в мой base.html.twig:

{% block javascripts %}
    {{ encore_entry_script_tags('app') }}
{% endblock %}

Однако JavaScript не загружается, если включитьточно такой же помощник Twig в одном из моих шаблонов (index.html.twig), загружается JavaScript.

Итак, мой вопрос, почему вышеуказанный помощник Twig работает в одном из моих шаблонов, но не в моем базовом шаблоне

Ответы [ 2 ]

2 голосов
/ 10 мая 2019

То, что было сказано preciel , является верным, использование блока внутри шаблона, который расширяет другой шаблон, перезапишет код по умолчанию внутри этого блока.

Однако есть и другое решение, кроме простого перемещения кода за пределы блока в базовом шаблоне, и это вызывает функцию parent()

main.twig

{% extends 'base.twig' %}
{% block foo %}
    {{ parent() }}
    Bar
{% endblock %}

base.twig

{% block foo  %}
    Foo
{% endblock %}

выход

Foo
Бар

демо

2 голосов
/ 10 мая 2019

Сбой, потому что он внутри вашего блока 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 %}. Это будет просто проигнорировано.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...