【问题标题】:Load one js file using assetic inside Symfony2在 Symfony2 中使用资产加载一个 js 文件
【发布时间】:2013-09-15 23:06:24
【问题描述】:

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

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

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

现在,如果所有 JS 文件都在 vendor 文件夹中,这可以正常工作。但是,如果我在一个名为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 中做到这一点。

【问题讨论】:

    标签: symfony assetic


    【解决方案1】:

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

    {% 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”,您可以按照my answer here 中的建议将它们添加到您的assetic.assets 配置中。

    【讨论】:

      【解决方案2】:

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

          {% block javascripts %}
             {{- parent() -}}
             {% javascripts "@AcmeBundle/Resources/public/js/contact.js"  %} 
                       <script type="text/javascript" src="{{ asset_url }}" ></script>
             {% endjavascripts %}
          {% endblock %}
      

      【讨论】:

        猜你喜欢
        • 2014-02-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多