Конфигурация Symfony2 Assetic jQuery

Я не могу найти никаких ресурсов для этого.

У меня есть шаблон base.twig.html, из которого происходят все мои страницы. Внизу я загружаю необходимые js для сайта: jquery, bootstrap и какой-то пользовательский javascript

{% block reqscripts %}
    {% javascripts '@jquery' '@bootstrap_js' '@sc_js' %}
    <script type="text/javascript" src="{{ asset_url }}"></script>
    {% endjavascripts %}
{% endblock %}

{% block extrajs %}

{% endblock %}

Необходимые скрипты загружаются и работают отлично!

Вы заметите, что я оставил пустой блок «extrajs», чтобы я мог загружать js для конкретной страницы, если это необходимо.

Когда я переопределяю этот блок и загружаю другие файлы javascript, они бросают

$ not defined
jQuery not defined 

ошибки.

Почему это происходит и как я могу настроить свой шаблон для обработки моего блока extrajs без ошибок jquery.

Я могу показать свою активную конфигурацию, если это необходимо, но я действительно сомневаюсь, что это проблема, поскольку jquery загружается очень хорошо.

Изменить Итак, скрипты в блоке "extrajs" действительно выполняются, но выдаются ошибки. Каков правильный способ сделать это?

Изменить скелет для base.html.twig согласно запросу

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <link href="//netdna.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css" rel="stylesheet">
    {% block reqstyles %}
        {% stylesheets '@SCMainBundle/Resources/public/css/fonts.css' %}
        <link rel="stylesheet" href="{{ asset_url }}" screen="media"/>
        {% endstylesheets %}

        {% stylesheets '@bootstrap_less' %}
        <link rel="stylesheet" type="text/css" href="{{ asset_url }}"/>
        {% endstylesheets %}
        {% block extracss %}

        {% endblock %}
    {% endblock %}
    <title>{% block titleblock %}{% endblock %}</title>
</head>
<body {% block bodyid %}{% endblock %}>

{% block header %}
    {% include 'SCMainBundle:Templates/Header:basic-header.html.twig' %}
{% endblock %}

{% block nav %}
{% endblock %}

{% block content %}

{% endblock %}


{% block footer %}
    {% include 'SCMainBundle:Templates:footer.html.twig' %}
{% endblock %}

{% block reqscripts %}
    {% javascripts '@jquery' '@bootstrap_js' '@sc_js' %}
    <script type="text/javascript" src="{{ asset_url }}"></script>
    {% endjavascripts %}
    {% block extrajs %}

    {% endblock %}
{% endblock %}

</body>
</html>

Как видите, jQuery загружается первым без ошибок, и все файлы в этом блоке javascript работают.

Следующий блок выдает отсутствующие ошибки jquery, но все равно выполняет скрипт нормально.


person Theodore Enderby    schedule 11.06.2014    source источник
comment
Где эти блоки появляются в вашем шаблоне? И главное в каком порядке?   -  person Debreczeni András    schedule 11.06.2014
comment
Внизу перед конечным тегом body и именно в таком порядке. Обязательное сначала, дополнительное сразу после. Шаблоны, расширяющие этот шаблон, не переопределяют блок requirejs, только блок extrajs.   -  person Theodore Enderby    schedule 11.06.2014
comment
Лучше ли загружать необходимые js в теге head?   -  person Theodore Enderby    schedule 11.06.2014
comment
Если вы вставите свой скелет шаблона, я могу сказать вам, в порядке ли порядок блоков (для вашего сценария). Как лучше всего включить требуемый javascript - в голову или в тело? Я позволю более продвинутым пользователям javascript ответить на это. Вот один из них: stackoverflow.com/questions/14328449/   -  person Debreczeni András    schedule 11.06.2014


Ответы (1)


Как и в другом вопросе, я тупо расширил свой блок extrajs ВНУТРИ моего блока контента, тем самым сбросив все заказы.

person Theodore Enderby    schedule 11.06.2014