在rails 3.1资产管道中使用Less(与Sass / Scss结合使用)最简单(有一种简单方法吗?)是什么?
我想加载像foo.css.less这样的文件,就像我为bar.css.scss做的那样
我找到了一些对我不起作用的不太好的解决方案(没有尝试过很多): https://github.com/thisduck/ruby-less-js/issues/2
这个想法是以干净的方式使用Twitter Bootstrap。 提前致谢
答案 0 :(得分:10)
如果您只想使用bootstrap,可以在GemFile中加入'less-rails'和'less-rails-bootstrap'宝石。
然后,您可以在.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- rails配置。请注意,如果您的文件名以.css.less结尾,则不需要这些额外工作,因为资产管道应该为您处理该编译(只要您包含'less-rails')。只有当您想在应用程序的.css.less文件中直接引用外部.less文件时,才需要执行此过程。
我用于bootstrap的设置是将* .less文件复制到vendor/assets/frameworks/twitter/bootstrap
。保留vendor/assets/stylesheets/...
中的文件会给我带来一些问题,可能是由于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"
...
答案 1 :(得分:1)
来自this blog post的人创建了Less Rails宝石。
在Rails 3.1项目中,它可以轻松减少。
答案 2 :(得分:0)
刚碰过来,但还没有机会进行测试。
http://www.ciddennis.com/2011/09/getting-twitter-bootstrap-to-work-with-rails-31-asset-pipeline.html
答案 3 :(得分:0)
在此处查看有关不同方法的讨论http://rubysource.com/twitter-bootstrap-less-and-sass-understanding-your-options-for-rails-3-1/
答案 4 :(得分:-1)
只需将您的yourlessfile.less
文件放入public/stylesheets
,然后在您的视图中,将其包含在
stylesheet_link_tag "/stylesheets/yourlessfile.less", :rel => "stylesheet/less"
不要忘记在视图中包含less.js.