javascript - 将来自多个模板的 JavaScript 与 Assetic 结合起来

标签 javascript symfony assetic

假设我有以下 Twig 模板:

base.html.twig:

<html>
    <body>
    {% block javascripts %}
        {% javascripts
            '../app/Resources/js/jquery-2.2.4.min.js'
            '../app/Resources/js/base.js'
            filter='uglifyjs2' output='main.js'
        %}
            <script src="{{ asset_url }}" type="text/javascript"></script>
        {% endjavascripts %}
    {% endblock javascripts %}
    </body>
</html>

page1.html.twig:

{% extends 'base.html.twig' %}

{% block javascripts %}
    {{ parent() }}
    {% javascripts
        '../app/Resources/js/page1_specific.js'
        '../app/Resources/js/page1_other.js'
        filter='uglifyjs2' output='page1.js'
    %}
        <script src="{{ asset_url }}" type="text/javascript"></script>
    {% endjavascripts %}
{% endblock javascripts %}

使用此代码,page1 模板将发出两个 JavaScript 请求,一个针对 main.js,另一个针对 page1.js

是否可以以不同的方式编写它,这样我只会生成一个特定于每个最终模板的大js文件,包括基本页面js和page1特定js?

最佳答案

您可以在 config.yml 中声明基本 js,如下所示:

assetic:
    assets:
        base:
        inputs:
            - '@AppBundle/Resources/public/js/jquery-2.2.4.min.js'
            - '@AppBundle/Resources/public/js/base.js'

并在您的 javascript block 中调用它:

{% javascripts
    '@base'
    '../app/Resources/js/page1_specific.js'
    '../app/Resources/js/page1_other.js'
    filter='uglifyjs2' output='page1.js'
%}

您可以找到更多info here .

关于javascript - 将来自多个模板的 JavaScript 与 Assetic 结合起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40930093/

相关文章:

node.js - 如何为自定义过滤器 [Bootstrap、JQuery] 配置 Symfony2 和 Assetic 设置?

css - Symfony2 不支持 Assetic CSS

javascript - 在 javascript 提示符下输入文本后,我的文本没有出现在屏幕上

java - 如何将 JSON 格式的数据从 WebView 传递到 HTML 页面

symfony - Payum - symfony2 bundle 没有将我重定向到 paypal 快速结帐时的 paypal

php - Symfony2 登录后成功处理程序不工作

javascript - D3 : Tree diagram with images and circles as nodes

javascript - 我应该在 redux 应用程序中嵌套 immutable.js Map 和 List 吗?

symfony - 在 Doctrine2 中定义 DECIMAL 类型注释的正确方法是什么

windows - 更少的 Windows Node.js 挂起