0

我在我的基本树枝模板中使用以下块来创建压缩的 css 文件:

{% stylesheets  output='bundles/myBundle/compressed/compressed.css'
                filter='uglifycss'
                filter='cssrewrite'
                'bundles/myBundle/stylesheets/app.css'
                'bundles/myBundle/stylesheets/tablet.css'
                'bundles/myBundle/stylesheets/phone.css'
%}
        <link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}

直到几周前(以及升级到 ubuntu 15.04),这可以正常转储我所有的 css 文件。

现在,我的@media 和我的@font-family 部分从编译/压缩的 css 中消失了。

如果我只应用 cssrewrite 过滤器而不是 uglifycss 过滤器,那么正如预期的那样,@media 和 @font-face 部分就在那里。

我使用:uglifycss@0.0.15,Symfony v2.6.8,symfony/assetic v2.6.1

有谁知道这里可能出了什么问题?

感谢您的帮助!多米尼克


编辑:我能够将其固定下来。Symfony 执行以下命令来丑化 css。

/usr/bin/nodejs /usr/local/bin/uglifycss /path/to/my/app.css

在 bash 命令行上执行相同的命令也会导致相同的错误行为。所以这不是一个 Symfony 或资产问题,但似乎是一个 uglifycss 问题。

有任何想法吗?

干杯,多米尼克

4

1 回答 1

0

进一步的调试表明,css 注释是问题所在。

根据http://www.w3.org/TR/CSS21/syndata.html#comments的评论是这样的:

/*/////////////////////////////////*/
/* some comment                    */
/*/////////////////////////////////*/

但事实证明,uglifycss 0.0.15 在注释以“/*/”结尾时存在问题。

在最后一个 '/' 和 '*/' 之间添加一个空格解决了我的问题。

/*//////////////////////////////// */
/* some comment                    */
/*//////////////////////////////// */

我还在 github 上打开了一个问题。https://github.com/fmarcia/UglifyCSS/issues/33

干杯,多米尼克

于 2015-07-03T12:01:28.567 回答