Как использовать Less в приложении rails 3.1? - PullRequest
9 голосов
/ 06 сентября 2011

Что проще (есть ли простой способ?) Использовать Less (в сочетании с Sass / Scss) в конвейере ресурсов rails 3.1?

Я хочу загрузить файл, например, foo.css.less, как я бы сделал для bar.css.scss

Я нашел какое-то странное решение, которое не работает для меня (не очень много пробовал): https://github.com/thisduck/ruby-less-js/issues/2

Идея состоит в том, чтобы использовать Twitter Bootstrap в чистом виде. Заранее спасибо

Ответы [ 5 ]

10 голосов
/ 30 ноября 2011

Если вы хотите использовать только загрузчик, вы можете сделать это, включив в свой GemFile гемы "less-rails" и "less-rails-bootstrap".

Затем вы можете @import bootstrap в своих файлах .css.less:

@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 или у вас есть не загружаемые файлы .less, которые вы хотите включить, вам нужно вручную добавить .less пути к менее рельсы конфиг. Обратите внимание, что эта дополнительная работа не требуется, если ваши имена файлов заканчиваются на .css.less, так как ресурс-конвейер должен обрабатывать эту компиляцию для вас (если вы включили «less-rails»). Эта процедура требуется только в том случае, если вы хотите ссылаться на внешние файлы .less непосредственно в файлах вашего приложения .css.less.

Настройка, которую я использую для начальной загрузки, заключается в копировании файлов * .less в vendor/assets/frameworks/twitter/bootstrap. Хранение файлов в vendor/assets/stylesheets/... вызвало у меня некоторые проблемы, возможно, из-за того, что Rails magic разрешил мой импорт в необработанные файлы .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 голос
/ 03 октября 2011

Парень из этого сообщения в блоге создал Less Rails gem.

Это облегчает задачу в проекте Rails 3.1.

0 голосов
/ 13 февраля 2012

см. Обсуждение различных подходов здесь http://rubysource.com/twitter-bootstrap-less-and-sass-understanding-your-options-for-rails-3-1/

0 голосов
/ 19 сентября 2011

Просто наткнулся на это, но еще не успел проверить.

http://www.ciddennis.com/2011/09/getting-twitter-bootstrap-to-work-with-rails-31-asset-pipeline.html

0 голосов
/ 06 сентября 2011

Просто поместите свой yourlessfile.less файл в public/stylesheets, затем, по вашему мнению, включите его с

stylesheet_link_tag "/stylesheets/yourlessfile.less", :rel => "stylesheet/less"

Не забудьте включить less.js в ваше представление.

...