在rails资产管道中包含多个LESS文件

时间:2013-07-23 14:53:08

标签: css ruby-on-rails ruby less asset-pipeline

所以我在我的rails应用程序中分解了我的LESS文件(不要问我为什么使用LESS而不是SASS)到一堆单独的文件中,基于它们的意图。

stylesheets/
├── add-listing.css.less
├── application.css
├── checkout.css.less
├── dashboard-home.css.less
├── edit-listing.css.less
├── edit-profile.css.less
├── global-variables.css.less
├── global.css.less
├── inquiries.css.less
├── inquiry.css.less 
├── manifest.css.less
├── profile-listing.css.less
├── questionnaire.css.less
├── scaffolds.css.less
├── scrape.rb
├── screen.css.less
├── search.css.less
├── settings.css.less
└── sign-up-log-in.css.less

我发现require_tree .application.css中不起作用。我需要先加载global-variables.css.less,然后才会这样做。即使我说require global-variables.css.less它仍然不会呈现根页面所需的实际LESS文件。

所以我一直在做的是为@import中的所有文件添加manifest.css.less个语句。它有效,但这意味着如果我创建一个新的LESS文件,我每次都要添加一个@import语句。这只是另一个步骤,我想知道是否有可以用Rails做到这一点。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

这不是LESS特有的问题。在SASS中,还存在一个问题,即无法确保require_tree包含文件的顺序。例如,如果您想要一个包含一堆全局SASS变量的variables.scss文件,则必须删除require_tree并在application.css中执行此操作:

/*
 *= require_self
 *= require main
*/

然后在main.css.scss中:

// Import this first so other .scss files can see the variables and the bootstrap stuff
@import "variables";

// @import everything else here. If you add a new file, it won't show up until you add a line to import it here.
@import "style";
@import "tables";
//etc

是的,这很麻烦。