Твиттер Twitter имеет неверный CSS в соответствии с конвейером ресурсов Rails 3.1 во время предварительной компиляции? - PullRequest
8 голосов
/ 06 октября 2011

Я создал совершенно новое приложение Rails 3.1.Я добавил файл начальной загрузки Twitter в app / assets / stylesheets / bootstrap.min.css.Вот соответствующий код

app / assets / stylesheets / application.css (включает в себя дерево, поэтому включен загрузчик)

/*
 * This is a manifest file that'll automatically include all the stylesheets available in this directory
 * and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
 * the top of the compiled file, but it's generally better to create a new file per style scope.
 *= require_self
 *= require_tree . 
*/

Gemfile (включает execjs и therubyracer для компиляции / сжатия)

group :development, :qa do
  gem 'execjs'
  gem 'therubyracer'
end
# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails',   '~> 3.1.0'
  gem 'coffee-rails', '~> 3.1.0'
  gem 'uglifier', '>= 1.0.3'
end

Затем я запускаю задачу rake для прекомпиляции ресурсов.

rake assets:precompile

. Это происходит со следующей ошибкой

Invalid CSS after ".inputs-list li+": expected number or function, was "li"

, что CSS находится в файле начальной загрузки (".inputs-list li + li" является селектором).

Однако, если я запустил

rake assets:precompile RAILS_ENV=development

, теперь он работает нормально.Оказывается, что если я изменю config / environment / production.rb, чтобы не сжимать файлы:

config.assets.compress = false

, то оригинальная команда тоже работает (без указания среды разработки).

Итак, как мне отследить ошибку?Я могу пока просто отключить сжатие, но, очевидно, что-то не так.Это рельсы?Звездочки?Рубиновый Гонщик?Uglifier

Ответы [ 2 ]

6 голосов
/ 17 октября 2011

Я рекомендую использовать одну из библиотек, которая преобразует загрузчик в sass и включает его в конвейер ресурсов.Таким образом, вы включите JS, вы можете изменить переменные, которые использует bootstrap, в файле preboot.scss, и вы можете выбрать, какие функции включить.Вы также сможете обновиться с помощью bundler.

Я использую bootstrap-sass, и он прекрасно работает: https://github.com/thomas-mcdonald/bootstrap-sass

4 голосов
/ 17 октября 2011

Я исправил это с помощью неунифицированной версии Bootstrap.Он все равно будет скомпилирован при запуске rake assets:precompile, поэтому это не проблема:)

...