将uglifycss应用于我的css时,我的所有@media和@ font-face声明都将丢失

时间:2015-06-30 20:04:57

标签: css uglifycss

我在基本树枝模板中使用以下块来创建压缩的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

有谁知道这里可能出现的问题?

Thanx的帮助! 多米尼克

编辑: 我能够把它钉一点。 Symfony执行以下命令来uglify css。

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

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

有什么想法吗?

干杯, 多米尼克

1 个答案:

答案 0 :(得分: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

干杯, 多米尼克