【问题标题】:Why does assetic generate multiple copies of my asset in development?为什么资产在开发中会生成我的资产的多个副本?
【发布时间】:2023-03-11 13:00:01
【问题描述】:

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

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

【问题讨论】:

  • 你在devprod 环境中有这个吗?
  • @n.1 谢谢,事实证明它只发生在我的dev 环境中。我仍然对为什么需要这种重复感兴趣,所以我更新了我的问题。

标签: php symfony assetic


【解决方案1】:

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

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

Combining Assets in Symfony

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-10
    • 1970-01-01
    • 2021-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多