LessCSS Assetic @import缓存禁用

时间:2012-12-30 08:24:02

标签: php css symfony less assetic

我有一个“小”问题,正在偷走我疯狂的时间。

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

global.less:

@import "colors";

body {
    background: @backgroundColor;
}

colors.less:

@backgroundColor: #333;

现在,如果我在 colors.less 中更改@backgroundColor,则不会发生任何事情。我必须在 global.less 文件中添加空格,然后才重新编译我的CSS。

首先,我检查了它是否是APC加速器问题,所以我禁用了它,但事实并非如此。然后我检查了资产github,发现了这个:Issue #79

我尝试了但是故事仍然是一样的,好像我什么也没做。然后我检查了我的 Assetic 版本是否具有此功能,因为我发现2个月前“ArrayCache”类已合并,所以我设置了 composer.json 需要“dev-master”Assetic Bundle(已在12月中旬更新,因此它将新的Assetic版本合并到其中)。仍然没有成功。

我现在没有想法了。

2 个答案:

答案 0 :(得分:1)

这是一个已知的错误,Assetic无法找到导入较少文档的更改。

要解决这个问题,我使用的LessElephantBundle仅适用于开发环境。它将扫描较少的文件以进行更改,如果失败,则可以使用force_compile var。

在assetic:dump --env = prod,你不需要它,assetic将重新生成所有没有缓存的css。

答案 1 :(得分:0)

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