2013-07-19 29 views
3

在主布局页面为我的Symfony2项目,我对CSS和JavaScript assetic块如下:Assetic没有倾销某些文件

{% block stylesheets %} 
    {% stylesheets 
     'bundles/my_bundle/css/main.css' 
     'bundles/my_bundle/css/additional.css' 
     'bundles/my_bundle/css/new.css' 
     filter='cssrewrite' 
     output='css/packed/layout_default.css' 
    %} 
    <link type="text/css" rel="stylesheet" href="{{ asset_url }}" /> 
    {% endstylesheets %} 
{% endblock %} 

{% block javascripts %} 
    {% javascripts 
     'bundles/my_bundle/js/main.js' 
     'bundles/my_bundle/js/additional.js' 
     'bundles/my_bundle/js/extra.js' 
     output='js/packed/layout_default.js' 
    %} 
    <script type="text/javascript" src="{{ asset_url }}"></script> 

    {% endjavascripts %} 
{% endblock %} 

也有包含这些阻止其他文件作为该项目是一个多主题启用了一个。

日前(不改变任何东西assetic相关的)我注意到,当我做

app/console assetic:dump 

命令最初摊位约10秒钟,就好像它正在重建的缓存或东西,然后开始转储文件。所有的.js文件都正确转储,并且所有的css文件都来自非默认主题。

但是,有时上述块中的css文件不会被转储,我发现要解决这个问题的唯一方法是编辑我的布局页面并删除样式表块中的一个css文件,运行dump命令,重新添加样式表,然后重新运行该命令。完成此操作后,随后的资产:转储将正常运行,尽管仍处于初始暂停状态。

有没有人遇到过类似于此的行为,或者没有人有任何指示我可以在哪里寻找进一步排除故障?

+0

在你的情况下,“不倾销”是什么意思?该进程成功运行但文件没有被转储..或者进程停止/挂起而不倾销? – nifr

+0

前者 - 过程完成,但文件不在输出列表中,并且不出现在资产转储目录中。 – tanGee

回答

8

我经历过类似的行为有时只能做这样输出的名字到资源集合的微小变化时...

但是清除缓存倾销总是固定的问题,我之前。

因此我一直执行:

app/console cache:clear --no-warmup && assetic:dump --no-debug

,并在我的zshrc已化名这s ca:c

我建议您在config.yml(或导入的文件)中使用预配置的资产集合,如我在this answer中提到的。这真正地压缩了您的模板并使其更具可读性。

+0

感谢您的建议!不幸的是,在运行资源之前清除缓存:转储没有区别 – tanGee

+0

为我工作:'php app/console cache:clear --no-warmup -e%environment%&& php app/console assetic:dump -e%environment %' – mate64

+0

非常完美! Danke sehr! :) – Chemaclass