LessCSS asset @import缓存禁用


LessCSS Assetic @import cache disabling

我有一个"小"问题,它从我那里偷走了大量的时间。

我在symfony2.1中使用asset lesscss过滤器。问题是,Assetic(?)不会注意到使用@import导入的文件中的文件更改。例如:

global.less:

@import "colors";
body {
    background: @backgroundColor;
}

colors.less:

@backgroundColor: #333;
现在,如果我把@backgroundColor换成的颜色。小于,什么也没发生。我必须在全局中添加空白。less文件,然后它才重新编译我的CSS。

首先,我检查了它是否是APC加速器问题,也许所以我禁用了它,但它不是。然后我检查了asset github,发现了这个:Issue #79

我试过了,但故事还是一样,好像我什么都没做过。然后我检查了我的 astic 版本是否有这个功能,因为我发现"ArrayCache"类是2个月前合并的,所以我设置了我的作曲家。json要求"dev-master"Assetic Bundle(该Bundle已于12月中旬更新,因此合并了新的Assetic版本)。还是没有成功。

我现在没主意了

这是一个已知的bug, Assetic无法在导入的less文档中找到更改

为了解决这个问题,我使用LessElephantBundle,它只在开发环境中工作。它将扫描更少的文件来查找更改,如果失败,你可以使用force_compile var。

在assetic:dump——env=prod上,你不需要它,assetic会在没有缓存的情况下重新生成你所有的css。

这个问题在2年后仍然发生在我身上。我修复它的方式是通过在PHPStorm中设置一个文件监视器,每次@imports引用的LESS文件之一被修改时,它都会在主LESS文件上运行touch命令。这会破坏缓存,并重新编译CSS文件。