2013-03-14 73 views
0

我真的不知道如何调试,也许有人有一个想法。Rails 3.2&LESS:一些application.css.less @imported LESS文件不会触发重新编译

我有很多LESS文件,我输入application.css.less。我们使用Bootstrap,并且我们希望使用在它自己的样式中定义的变量,所以我们不能要求清单中的LESS文件(因为所需的文件似乎没有将其变量公开给其他所需的文件)。

一切都很好,除少数LESS文件 - 编辑时 - 不会触发CSS的重新编译!这似乎是非常随机的,哪些是不会的,只有6个没有(总共约25个)。当我在清单中需要其中一个时,它会成功导致重新编译 - 如果我@import它,它不会。

关于如何调试的任何想法?如果我重新命名他们中的一个(例如,从time_records.lesstime_records2.less),它成功地引发重新编译更改后...所以它确实会与这些6个特异性文件的名称的东西:

  • calendars.less
  • contacts.less
  • folders.less
  • handout.css.less
  • print.css.less
  • time_records.css.less

任何帮助,非常感谢。谢谢。

+0

你有没有想出任何解决方案?我面临着类似的问题。 – 2013-09-17 16:24:49

回答

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路径声明给定的路径的依赖关系,而不包括其在捆绑中。当您需要为了响应另一个文件中的更改而终止资产的缓存时,这非常有用。