我的Symfony2项目有AssetBundle
,其中包含一张位于/Bundle/AssetBundle/Resources/images/logo.svg
的图片。
我的一个观点中引用了这个:
{% image '@AssetBundle/Resources/images/logo.svg' %}
<img src="{{ asset_url }}" width="130" />
{% endimage %}
但是,在运行php app/console assetic:dump
时,我最终会在/web/images
文件夹中找到两个相同版本的徽标:
/web/images/3cf3f78.svg
/web/images/3cf3f78_logo_1.svg
这在我的生产环境中不会发生,为什么在开发中需要它?我加载的视图仅使用后者。
答案 0 :(得分:0)
我知道这是一个老问题,但我花了几个小时试图解决同样的问题。我的Symfony项目使用多个插入Assetic的捆绑包,因此我检查了每个捆绑包以查看它们是否有重复资产的错误。好吧,我终于得出了和你一样的结论 - 它的AsseticBundle就是这样做的,而且它是设计的。虽然我不同意其背后的推理,但直接来自Symfony文档:
在开发环境中,每个文件仍然是单独提供的,因此您可以更轻松地调试问题。但是,在prod环境中(或者更具体地说,当debug标志为false时),它将呈现为单个脚本标记,其中包含所有JavaScript文件的内容。