Symfony2 Assetic不使用带有*符号的多个javascript文件

时间:2014-12-01 22:19:35

标签: javascript php symfony assetic

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

形成我在这里阅读的内容资产允许使用多个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测试,这些测试都在我的主要模板上。并且所有页面都会显示该类...所以所有测试都应该正常工作。

任何人在使用带有资产的*标志时都遇到过这样的问题?

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

2 个答案:

答案 0 :(得分:3)

我之前发现资产只有两个问题。

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

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

答案 1 :(得分:0)

几个小时后出现同样的问题,我意识到你需要:

  1. 按命令创建符号链接(A.K.A. 符号链接)或捆绑包的副本:

    bin / console assets:install

    bin / console assets:install --symlink

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