Как использовать компас с рельсами 3.1
Я искал и искал, и все, что я мог видеть, заключалось в том, что для использования компаса с rails 3.1 нужно было просто редактировать Gemfile так:
gem 'compass', :git => 'https://github.com/chriseppstein/compass.git', :branch => 'rails31'
gem 'sass-rails', "~> 3.1.0.rc"
Да, я понимаю это, но что дальше? Каждый учебник, который я видел, говорил именно так, используйте эту определенную вилку. Но у меня все еще есть проблемы с использованием компаса с рельсами 3.1.
Я сделал это:
$ compass init rails . --syntax sass
directory ./app/stylesheets/
create ./config/compass.rb
create ./app/stylesheets/screen.sass
create ./app/stylesheets/print.sass
create ./app/stylesheets/ie.sass
И так как 3.1 теперь использовал активы, я просто передал все эти файлы в 3.1. Кроме того, я использую плагин compass-960, поэтому, где он мне нужен? Я попробовал добавить compass.rb с требованием 960 и потребовать html5-шаблон, и я все равно продолжаю получать ошибки:
Error compiling asset application.css:
NoMethodError: undefined method `Error' for Compass:Module
(in /Users/eumir/rails_apps/kiseki/app/assets/stylesheets/screen.sass)
NoMethodError (undefined method `Error' for Compass:Module
(in /Users/eumir/rails_apps/kiseki/app/assets/stylesheets/screen.sass)):
Я попытался сделать компас компиляции, и он дал мне это:
Компиляция
$compass Нечего компилировать. Если вы пытаетесь запустить новый проект, вы оставите аргумент каталога. Запустите "compass -h", чтобы получить справку.
Как я уже сказал, я уже отредактировал свой compass.rb, поэтому я все еще не понимаю, как это сделать. Любая помощь?
Ответы
Ответ 1
Решения в других ответах устарели с последней версией Compass, v0.12, которая требует, чтобы адаптер работал с приложением rails. Автор Compass, Крис Эпштейн, установил инструкции по установке на github:
https://github.com/compass/compass-rails
Этот адаптер поддерживает рельсы версии 2.3 и выше
Ответ 2
ОБНОВЛЕНИЕ: Похоже, что есть лучший способ!
Источник: http://spin.atomicobject.com/2011/07/12/sass-sprockets-compass-with-rails-3-1/
ОБНОВЛЕНИЕ 2 (2 декабря 2011 г.): Крис Эпштейн, создатель Compass, опубликовал этот Github Gist о том, как интегрировать Compass с Rails 3.1: https://gist.github.com/1184843
Теперь я предпочитаю этот метод по сравнению с моим, так как я заметил значительное улучшение скорости во время компиляции при использовании функции "загрузка".
МОЙ МЕТОД:
(Теперь я считаю, что он устарел, но, возможно, он может быть полезен в некоторых случаях, поэтому здесь он для справки:)
Сначала в вашем Gemfile добавьте:
gem "compass", "~> 0.12.alpha.0"
И не забудьте выполнить
bundle update
Затем в config/application.rb:
config.generators.stylesheet_engine = :sass
Переименуйте application.css.scss в application.css.sass или создайте его и замените его содержимое на:
@import compass
@import _blueprint
(Если вы хотите сохранить новый код манифеста Rails 3.1 в начале таблицы стилей, вам придется заменить "/* */комментарии версией sass-синтаксиса" // в начале каждой строки)
Теперь, чтобы проверить, работают ли компасы и компоновки чертежей, добавьте некоторый код в тот же файл application.css.sass:
@import compass
@import _blueprint
body
background: black
+linear-gradient(color-stops(white, black))
+column(5)
Запустите сервер рельсов с помощью
bundle exec rails server
Загрузите приложение в браузере и посетите http://localhost:3000/assets/application.css
Если все пошло хорошо, вы должны увидеть скомпилированный код.
Источник:
http://blog.pixarea.com/2011/07/using-compass-blueprint-semantic-and-sass-syntax-in-rails-3-1/
Ответ 3
Peter Gumeson из групп пользователей компаса указал мне на исправление для этого:
https://groups.google.com/forum/#!msg/compass-users/mU5HBt8TCIg/2Rt7iSESTSAJ
Здесь его сообщение:
Привет, банда. Этот вопрос github может помочь. https://github.com/sporkd/compass-html5-boilerplate/issues/19
В настоящее время я почти полностью управляю всем. Итак, мой gemfile выглядит примерно так:
gem 'rails', :git => 'git://github.com/rails/rails.git'
gem 'sass-rails', '~> 3.1.0.rc2'
gem 'haml', :git => 'git://github.com/nex3/haml.git'
gem 'haml-rails'
gem "compass", :git => "git://github.com/chriseppstein/compass.git", :tag => "0.12.alpha.0"
gem 'compass-html5', :git => 'git://github.com/sporkd/compass-html5.git'
Я работаю над генераторами рельсов прямо сейчас, поэтому он не должен быть слишком далеко от. Но это должно по крайней мере заставить вас идти.
Петр
* изменил ветки, как сказал choonkeat
Ответ 4
Вы можете загрузить каталог компаса, выгрузить его в vendor/assets/stylesheets
, чтобы ваша структура каталогов была vendor/assets/stylesheets/compass
. Затем из ваших основных таблиц стилей приложения следует использовать compass mixins ass @include compass/reset;