“加载顺序”是答案...... js 文件以错误的顺序读取并导致问题。
这是解决方案:
链接到您的 js 库时,请确保单独提及每个文件,以便确定顺序。接下来,最后链接到 app.js 文件。如果不这样做,所有文件都将被找到并正确加载,但 Zurb 基金会不会使用它们。如果您查看 app.js 文件,您会看到它加载了库,并为每个未找到的库返回 null - 在那个特定的时刻。
因此,不要像这样链接到您的 js 文件:
{% javascripts
'@UnknownblissZurbfoundationBundle/Resources/public/javascripts/*'
%}
<script src="{{ asset_url }}"></script>
{% endjavascripts %}
像这样做:
{% javascripts
'@UnknownblissZurbfoundationBundle/Resources/public/javascripts/jquery.placeholder.js'
'@UnknownblissZurbfoundationBundle/Resources/public/javascripts/modernizr.foundation.js'
'@UnknownblissZurbfoundationBundle/Resources/public/javascripts/foundation.min.js'
'@UnknownblissZurbfoundationBundle/Resources/public/javascripts/jquery.foundation.accordion.js'
'@UnknownblissZurbfoundationBundle/Resources/public/javascripts/jquery.foundation.alerts.js'
'@UnknownblissZurbfoundationBundle/Resources/public/javascripts/jquery.foundation.buttons.js'
'@UnknownblissZurbfoundationBundle/Resources/public/javascripts/jquery.foundation.forms.js' '@UnknownblissZurbfoundationBundle/Resources/public/javascripts/jquery.foundation.mediaQueryToggle.js'
'@UnknownblissZurbfoundationBundle/Resources/public/javascripts/jquery.foundation.navigation.js'
'@UnknownblissZurbfoundationBundle/Resources/public/javascripts/jquery.foundation.topbar.js'
'@UnknownblissZurbfoundationBundle/Resources/public/javascripts/jquery.foundation.reveal.js'
'@UnknownblissZurbfoundationBundle/Resources/public/javascripts/jquery.foundation.tabs.js'
'@UnknownblissZurbfoundationBundle/Resources/public/javascripts/jquery.foundation.tooltips.js'
'@UnknownblissZurbfoundationBundle/Resources/public/javascripts/app.js'
'@UnknownblissZurbfoundationBundle/Resources/public/javascripts/*'
%}
<script src="{{ asset_url }}"></script>
{% endjavascripts %}
这样,您确定加载顺序而不是 Symfony2。以通配符链接结尾仍然是一个明智的主意,因此您可能忘记的任何内容仍将被链接。
看起来使用 Assetic 的所有额外好处都以这种方式被抛弃了,但您仍然拥有使用命名空间的优势,并且通过使用过滤器,您可以让 Assetic 将这些文件合二为一。这将限制所需的请求数量。所以唯一真正的缺点是需要额外的代码......
PS 上面选择的订单对我来说很好,但您可能想提出自己的订单。