рельсы 3.2 меньше CSS и геройку? - PullRequest
2 голосов
/ 25 января 2012

Хотел попробовать что-то новое, используя потрясающую twitter bootstrap и их Less CSS .Я наконец-то запустил свое приложение, но оно зависало в системе только для чтения.Я пытаюсь выяснить свои варианты, используя LESS, rails 3.2 и heroku.Вот что я могу сделать:

(1) Один из вариантов: прекомпиляция.

 bundle exec rake assets:precompile
 git commit public/assets -m "tedious precompilation task"
 git push heroku

Я обязательно забуду один раз скомпилировать, просто запихнуть изменения в heroku и разозлитьмои пользователи.Не то, что я хочу.

(2) Хороший вариант - less.js.Компилирует на стороне клиента.Это то, что чаще всего используют?

(3) Лучший вариант, ИМО.Прекомпилировать в кеш.Ни рутина прекомпиляции, ни дополнительная работа на стороне клиента.Что я спрашиваю, есть ли что-то вроде хлопот для SASS , за меньшие деньги?

ОБНОВЛЕНИЕ 26-го января-12: люди не используют рельсы стычек 3.1+, они используют sass-рельсы (рельсы по умолчанию 3.2) с конвейером активов.хлопот ооочень рельсы 3.0;) шаг прекомпиляции грабли не удалось в Heroku. / UPDATE

Идея компилирования в статический кеш-стойку для лака абсолютно блестящая.Я бы предпочел, чтобы каждый клиент нуждался в компиляции моего меньшего количества CSS, когда это можно сделать один раз, при развертывании.

ОБНОВЛЕНИЕ 25 января: Обновление себя на heroku.Стек кедра поддерживает конвейер ресурсов, поэтому больше нет необходимости в жемчужине.Правильный? / ОБНОВЛЕНИЕ

Что делать?

Ответы [ 2 ]

6 голосов
/ 26 января 2012

Решение:

application.rb
  config.assets.initialize_on_precompile = false

Простое решение, если вы его знаете ....!

Использовать с gem less-rails Теперь все активы скомпилированы и будут кэшироваться (как в варианте 3). Поток активов потрясающий!

Фон проблемы:

Heroku не удалось выполнить предварительную компиляцию, поскольку rails pr по умолчанию пытается инициализировать и подключиться к БД, но переменные ENV еще не доступны. Без если бы вы получили

$ git push heroku

Preparing app for Rails asset pipeline
Running: rake assets:precompile
rake aborted!
could not connect to server: Connection refused
Is the server running on host "127.0.0.1" and accepting
TCP/IP connections on port 5432?

Так же, как примечание: у Heroku есть способ предоставления переменных окружения также на этапе предкомпиляции.

$ heroku plugins:install http://github.com/heroku/heroku-labs.git
$ heroku labs:enable user_env_compile  [--app my_app]
0 голосов
/ 25 января 2012

У вас есть драгоценный камень:

gem 'less-rails'

Если вы добавите его к своим Gemfile, то вы можете использовать свои .less файлы так же, как .scss и .sass.

РЕДАКТИРОВАТЬ Но если вы хотите использовать Bootstrap, тогда это будет еще проще:

gem 'twitter-bootstrap-rails'

А затем

rails g bootstrap:install

Дополнительная информация на GitHub repo

...