如果您只想使用 Bootstrap,可以通过在 Gem 文件中包含“less-rails”和“less-rails-bootstrap”gem 来实现。
然后,您可以在 .css.less 文件中 @import bootstrap:
@import "twitter/bootstrap"
或者,您可以单独包含每个组成文件(不包括您不想要的文件):
// Reset
@import "twitter/bootstrap/reset";
// Core variables and mixins
@import "twitter/bootstrap/variables";
@import "twitter/bootstrap/mixins";
// Grid system and page structure
@import "twitter/bootstrap/scaffolding";
// Styled patterns and elements
@import "twitter/bootstrap/type";
@import "twitter/bootstrap/forms";
@import "twitter/bootstrap/tables";
@import "twitter/bootstrap/patterns";
如果您出于某种原因不想使用 less-rails-bootstrap gem,或者您有想要包含的非引导 .less 文件,则需要手动将 .less 路径添加到 less-轨道配置。
请注意,如果您的文件名以 .css.less 结尾,则无需进行任何额外的工作,因为资产管道应该为您处理该编译(只要您包含“less-rails”)。仅当您想直接在应用的 .css.less 文件中引用外部 .less 文件时,才需要此过程。
我用于引导的设置是将 *.less 文件复制到 vendor/assets/frameworks/twitter/bootstrap。将文件保存在vendor/assets/stylesheets/... 给我带来了一些问题,可能是由于 Ruby on Rails 魔术将我的导入解析为未处理的 .less 文件并且不知道如何处理它们(这只是我的猜测,我没有看完全融入其中)。
在项目中获得 .less 文件后,您需要告诉 less-rails 在哪里可以找到它们。通过将以下内容放入您的 application.rb 来做到这一点。
YourApp::Application.configure do
config.less.paths << File.join(Rails.root,'vendor','frameworks')
# Should be set to true in production.
config.less.compress = false
end
您可以使用以下方法将它们导入 .css.less 文件:
@import "twitter/bootstrap/reset"
@import "twitter/bootstrap/variables"
...