【问题标题】:Symfony2 dumped assets in prod have different code产品中的 Symfony2 转储资产具有不同的代码
【发布时间】:2016-07-05 05:01:44
【问题描述】:

是时候在我的应用程序中从 dev 切换到 prod 了,我正在尝试修复 css 文件等中所有损坏的链接。现在我被困在一个部分..

所以我有一个名为optimized.less 的文件。哪个有这个:

#srchFld {background: url(../img/search.png) no-repeat right center;border-radius: 0;padding: 4px;margin: 0;line-height: 16px;}

在做php时app/console assets:install。一切正常,文件生成。

之后,执行php app/console assetic:dump --env=prod --no-debug。为 prod 生成 css 文件。但是在文件中它生成了这个:

#srchFld {background: url(../../bundles/mpshop/img/search.png) no-repeat right center;border-radius: 0;padding: 4px;margin: 0;line-height: 16px;}

现在我知道一个事实,生成的链接是错误的。真正的问题是,它从其他地方生成链接 url。

例如:

如果我从我的公共 css 文件中删除 url:

#srchFld {background: url() no-repeat right center;border-radius: 0;padding: 4px;margin: 0;line-height: 16px;}

当我转储时,它仍然会生成与以前完全相同的 url... 为什么?我手动删除了我所有的缓存等等。并且使用 phpstorm find in path 选项没有其他文件使用相同的图像 url...

发生了什么事?

【问题讨论】:

  • 你试过define assets_base_urls吗?
  • 由于您使用的较少,您可以向我们展示更多您的设置吗?配置,也许是目录结构,你使用什么少编译器/库?

标签: php css symfony assets


【解决方案1】:

我认为这是由于您在模板中组装资产的方式。 为了让assetic能够在css文件中正确构建你的url,你需要使用symfony documentation中描述的cssrewrite过滤器

例子:

{% stylesheets
    'bundles/mybundle/css/main.css'
    'bundles/mybundle/css/another.css'
    filter='cssrewrite'%}
    <link rel="stylesheet" href="{{ asset_url }}"/>
{% endstylesheets %}

【讨论】:

  • 这正是我在 base.html.twig 中所拥有的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-15
  • 2015-10-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多