我使用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,则脚本的顺序将按字母顺序排列,这可能会破坏脚本文件之间的一些依赖关系。这就是我通常不使用*符号的原因。
在遇到相同问题的几个小时后,我意识到您需要:
-
通过以下命令创建符号链接(又名符号链接)或复制捆绑包:
素材箱/控制台资源:安装
或
bin/控制台资源:安装 --符号链接
-
在您的定义中,使用
bundles/mysiteblog/js/*
而不是@MySiteBlogBundle/Resources/public/js/*
(您将在步骤 1 之后在 WEB 目录中看到您的捆绑包路径。