2

我是 Symfony 2 的新手。以前我用 Codeigniter 做了很多工作。现在我正在探索资产,我无法理解如何将单个文件添加到已经加载的 JS 文件堆栈中。

我有一个主页树枝文件,其中包含以下内容:

{% javascripts '@BlogBlogBundle/Resources/public/js/vendor/*' output='js/combined.js' %}
  <script type="text/javascript" src="{{ asset_url }}"></script>
{% endjavascripts %}

现在,如果所有 JS 文件都在供应商文件夹中,这可以正常工作。但是,如果我在一个名为contact 的文件夹中有一个JS 文件contact.js,并且我希望它只在联系人页面上可见。所以,当我在联系页面树枝文件的块体中添加这样的代码时

{% javascripts '@BlogBlogBundle/Resources/public/js/home/*' output='js/home_combined.js' %}
  <script type="text/javascript" src="{{ asset_url }}"></script>
{% endjavascripts %}

contact.js 在正文结束之前加载的所有其他 js 文件之前出现。

在 codeigniter 中,使用 Carabiner 库我可以设置我想在所有页面上加载的默认文件,比如 jQuery。如果页面有任何特定文件,我可以在该特定控制器中执行此操作。

请让我知道如何在 Symfony 中做到这一点。

4

2 回答 2

2

您可以像这样将文件添加到您的资产中:

{% javascripts
    '@YourBundle/Resources/public/js/*'
    '@AnotherBundle/Resources/public/js/some.js'
    '@YourBundle/Resources/public/vendor/someother.js'
    output="filename.js"
%}
    <script src="{{ asset_url }}"></script>
{% endjavascripts %}

为了获得预定义的资产集合,您可以将其用作例如“@js_default”,您可以按照我在此处的回答assetic.assets中的建议将这些添加到您的配置中。

于 2013-09-11T20:52:18.150 回答
1

contact.js在主文件 js 文件之后添加,您可以执行以下操作。

    {% block javascripts %}
       {{- parent() -}}
       {% javascripts "@AcmeBundle/Resources/public/js/contact.js"  %} 
                 <script type="text/javascript" src="{{ asset_url }}" ></script>
       {% endjavascripts %}
    {% endblock %}
于 2013-09-11T22:58:21.277 回答