我使用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测试,这些测试都在我的主要模板上。并且所有页面都会显示该类...所以所有测试都应该正常工作。
任何人在使用带有资产的*标志时都遇到过这样的问题?
感谢您的任何评论/帮助。
答案 0 :(得分:3)
我之前发现资产只有两个问题。
首先,在生产模式中,您必须在使用之前转储它们(php app / console assetic:dump --env = prod)。好的,这不是问题,但你不应该忘记它。
其次,如果使用*符号加载所有JavaScripts,那么脚本的顺序将按字母顺序排列,这可能会破坏脚本文件之间的一些依赖关系。这就是我通常不使用*符号的原因。
答案 1 :(得分:0)
几个小时后出现同样的问题,我意识到你需要:
按命令创建符号链接(A.K.A. 符号链接)或捆绑包的副本:
bin / console assets:install
或
bin / console assets:install --symlink
在您的定义中,使用bundles/mysiteblog/js/*
而不是@MySiteBlogBundle/Resources/public/js/*
(您将在步骤1之后在WEB目录中看到您的捆绑路径。