资产不会转储某些文件

时间:2013-07-19 12:57:45

标签: symfony twig assetic

在我的Symfony2项目的主布局页面中,我有CSS和JavaScript的资产块,如下所示:

{% 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 %}

还有其他文件包含这些块,因为项目是启用多主题的。

最近(没有改变与资产相关的任何内容)我注意到当我这样做时

app/console assetic:dump

该命令最初会停止大约10秒钟,就好像它正在重建缓存或其他东西,然后开始转储文件。正确转储所有.js文件,并从非默认主题中转储所有css文件。

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

有没有人经历过与此相似的行为,或者有没有人有任何指示我可以在哪里进一步解决这个问题?

1 个答案:

答案 0 :(得分:8)

我有时会遇到类似的行为,只会对输出名称进行一些小的改动... ...

但是,在转储之前清除缓存总是为我解决了这个问题。

因此我总是执行:

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

并将此别名添加到我的zshrc中的s ca:c

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