我有一个“小”问题,正在偷走我疯狂的时间。
我在 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版本合并到其中)。仍然没有成功。
我现在没有想法了。
答案 0 :(得分:1)
这是一个已知的错误,Assetic无法找到导入较少文档的更改。
要解决这个问题,我使用的LessElephantBundle仅适用于开发环境。它将扫描较少的文件以进行更改,如果失败,则可以使用force_compile var。
在assetic:dump --env = prod,你不需要它,assetic将重新生成所有没有缓存的css。
答案 1 :(得分:0)
2年后,这个问题仍然发生在我身上。我修复它的方法是在PHPStorm中设置一个文件监视器,每当@imports引用的一个LESS文件被修改时,它就会在主LESS文件上运行touch
命令。这会破坏缓存,并重新编译CSS文件。