Symfony2 Assetic 不适用于带有 * 符号的多个 JavaScript 文件


Symfony2 Assetic not working with multiple javascript file with the * sign

我使用Symfony2和assetic Bundle。(使用 * 符号要求 assetic 获取所有文件时出现问题)

形成我在这里和那里阅读的资产允许使用多个javascript文件。

当我在 <'/html> 标签之前写入所有文件时,这工作得很好:

{% javascripts
    '@MySiteBlogBundle/Resources/public/js/test1.js' 
    '@MySiteBlogBundle/Resources/public/js/test2.js'
    '@MySiteBlogBundle/Resources/public/js/test3.js' 
%}
    <script type="text/javascript" src="{{ asset_url }}"></script>
{% endjavascripts %}    

但是相同的代码,如果我不使用列出文件,而是使用 *(就像这样:)

{% javascripts
    '@MySiteBlogBundle/Resources/public/js/*'
  %}
    <script type="text/javascript" src="{{ asset_url }}"></script>
 {% endjavascripts %}

使用 *,它仅根据显示的页面起作用。我在我的主要树枝模板上的类上完成了所有 javascipt 测试。这些类显示在所有页面上...所以所有的测试都应该工作。

有人在将此 * 符号与资产一起使用时遇到过这样的问题吗?

感谢您的任何评论/帮助。

我之前只注意到资产的两个问题。

首先,在生产模式下,您必须在使用之前转储它们(php app/console assetic:dump --env=prod)。好吧,这不是问题,但你不应该忘记它。

其次,如果您使用 * 符号加载所有 JavaScript,则脚本的顺序将按字母顺序排列,这可能会破坏脚本文件之间的一些依赖关系。这就是我通常不使用*符号的原因。

在遇到相同问题的几个小时后,我意识到您需要:

  1. 通过以下命令创建符号链接(又名符号链接)或复制捆绑包:

    素材箱/控制台资源:安装

    bin/控制台资源:安装 --符号链接

  2. 在您的定义中,使用 bundles/mysiteblog/js/* 而不是 @MySiteBlogBundle/Resources/public/js/*(您将在步骤 1 之后在 WEB 目录中看到您的捆绑包路径。