为什么资产在开发中会生成我的资产的多个副本?

时间:2014-04-21 22:12:58

标签: php symfony assetic

我的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

这在我的生产环境中不会发生,为什么在开发中需要它?我加载的视图仅使用后者。

1 个答案:

答案 0 :(得分:0)

我知道这是一个老问题,但我花了几个小时试图解决同样的问题。我的Symfony项目使用多个插入Assetic的捆绑包,因此我检查了每个捆绑包以查看它们是否有重复资产的错误。好吧,我终于得出了和你一样的结论 - 它的AsseticBundle就是这样做的,而且它是设计的。虽然我不同意其背后的推理,但直接来自Symfony文档:

  

在开发环境中,每个文件仍然是单独提供的,因此您可以更轻松地调试问题。但是,在prod环境中(或者更具体地说,当debug标志为false时),它将呈现为单个脚本标记,其中包含所有JavaScript文件的内容。

Combining Assets in Symfony