我真的不知道如何调试这个,也许有人有想法。
我有许多LESS文件,我在application.css.less
中导入。我们使用Bootstrap,我们希望在我们自己的样式中使用其中定义的变量,因此我们不能在清单中要求LESS文件(因为所需文件似乎不会将其变量公开给其他所需文件)。
一切都很好用,除了一些LESS文件 - 编辑时 - 不要触发重新编译CSS!它似乎是随机的,哪些不做,而且它们中只有6个没有(相比之下总和约为25)。当我在清单中需要其中一个时,它会成功导致重新编译 - 如果我@import它,它不会。
关于如何调试这个的任何想法?如果我重命名其中一个(例如从time_records.less
到time_records2.less
),它会在更改后成功触发重新编译...所以它确实对这6个特定文件的名称做了一些事情:
非常感谢任何帮助。谢谢。
答案 0 :(得分:2)
最新版本的less-rails实现了可以解决您的问题的导入钩子。我意识到这是一个迟到的答案,当时可能还不存在。
导入挂钩
任何@import到.less文件都会自动将该文件声明为导入它的文件的链接器依赖项。这意味着您可以编辑导入的框架文件,并在开发期间查看父项中反映的更改。所以这个:
@import "frameworks/bootstrap/mixins";
#leftnav { .border-radius(5px); }
最终表现得好像你在下面这样做了:
/*
*= depend_on "frameworks/bootstrap/mixins.less"
*/
@import "frameworks/bootstrap/mixins";
#leftnav { .border-radius(5px); }
depend_on指令
depend_on path声明对给定路径的依赖关系,而不将其包含在bundle中。当您需要使资产的缓存过期以响应另一个文件中的更改时,这非常有用。