Symfony2 Assetic jQuery配置

时间:2014-06-11 16:44:35

标签: javascript jquery symfony assetic

我无法找到任何资源。

我有一个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 %}

所需的脚本加载并且工作得很好!

你会注意到我留下了空的&#34; extrajs&#34;阻止所以我可以加载页面特定的js 如果需要的话。

当我覆盖该块并加载其他javascript文件时,它们会抛出

$ not defined
jQuery not defined 

错误。

为什么会发生这种情况,如何在没有jquery错误的情况下设置模板来处理我的extrajs块。

如果需要,我可以显示我的资产配置,但我真的怀疑这是因为jquery加载得很好。

修改 因此,&#34; extrajs&#34;中的脚本块实际上执行,但抛出错误。 这样做的正确方法是什么?

修改 根据要求提供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错误,但仍然可以正常执行脚本。

1 个答案:

答案 0 :(得分:0)

与另一个问题类似,我愚蠢地扩展了我的内部块中的extrajs块,从而丢掉了所有订单。