Здебільшого я пішов за наведеним напрямком тут
Який призводить до наступної помилки, яка надходить від ініціалізатора, який він попросив створити:
from /app/config/initializers/sass.rb:1:in `<top (required)>"
2011-09-05T16:45:42+00:00 app[web.1]: /app/vendor/bundle/ruby/1.9.1/gems/railties- 3.1.0/lib/rails/railtie/configuration.rb:78:in `method_missing": undefined method `sass" for # <Rails::Application::Configuration:0x00000003845528> (NoMethodError)
Сторінка Heroku на початку роботи не дуже багатодопоможе теж. Це в основному ті самі вказівки тільки без ініціалізатора. Однак без цього, він не може знайти якийсь матеріал, так що я все ще не можу почати.
Хтось там, хто зробив це далі, ніж у мене?
Редагувати для отримання додаткової історії:
Я пройшов ряд помилок, щоб приїхати сюди такЯ вирішив, що я повинен все це написати. Перша проблема у мене полягала в тому, що в html5-boilerplate було: активів, що означало, що метод ie_html не був знайдено, тому я витягнув це з: активів.
Це призвело до цієї помилки, оскільки html5-boilerplate залежить від компаса:
2011-09-05T17:15:47+00:00 app[web.1]: /app/vendor/bundle/ruby/1.9.1/bundler/gems/compass-b7f44a48d375/lib/compass/version.rb:56:in `const_missing": uninitialized constant Compass::Frameworks (NameError)
2011-09-05T17:15:47+00:00 app[web.1]: from /app/vendor/bundle/ruby/1.9.1/bundler/gems/compass-html5-boilerplate-405f9ddbca56/lib/html5-boilerplate.rb:1:in `<top (required)>"
Відповіді:
9 для відповіді № 1Врешті-решт, остаточним рішенням було також зробити глобальні (або, принаймні, як би це було). Я начебто відчуваю, що я, нарешті, отримав це для роботи за принципом співіснування, але ось це.
Я витягнув компас з:активів і зробив це глобальним теж. Це призвело до помилок при складанні файлів SCSS, які врешті-решт привели мене до оновлення до Ceder, що призвело до помилок помилок у проекті.
Нарешті, я додав ініціалізатор, який, на мою думку, призначений для того, щоб додати конфігураційний матеріал для компаса. Сподіваюся, що все допомагає.
Ось відповідний код:
gem "heroku"
gem "haml"
gem "compass", :git => "git://github.com/chriseppstein/compass.git"
gem "html5-boilerplate", :git => "git://github.com/sporkd/compass-html5-boilerplate.git"
gem "sass-rails", " ~> 3.1.0"
Зверніть увагу на версії github для компаса та html5-boilerplate (вам не потрібен h5bp, якщо ви не використовуєте його).
Ініціалізатор:
Rails.configuration.sass.tap do |config|
config.load_paths << "#{Gem.loaded_specs["compass"].full_gem_path}/frameworks/compass/stylesheets"
end
1 для відповіді № 2
Проблема полягає в тому, що бігові доріжки мають бути глобальними, але щось у вашому глобальному наборі залежить від бігових поручень.
Для мене рішення було перемістити компас в групу активів.
0 для відповіді № 3
Я тут поставив кілька докладних інструкцій: http://www.mattvanhorn.com/2012/01/07/heroku-cedar-assets-ruby-1-9/
Вона охоплює отримання основної програми Rails 3.1 з компасом, що працює на стеку Heroku Cedar.
Є також посилання на github repo ( http://github.com/mattvanhorn/placepanda/commits ), так що ви можете послідовно йти крок за кроком.
Можливо, вам доведеться також додати load_paths у application.rb, якщо ви використовуєте проект. Я використовую щебет-завантажувач на іншому додатку, як це, і я отримав:
if Rails.configuration.respond_to?(:sass)
config.sass.load_paths << "#{Gem.loaded_specs["compass"].full_gem_path}/frameworks/compass/stylesheets"
config.sass.load_paths << "#{Gem.loaded_specs["compass_twitter_bootstrap"].full_gem_path}/lib/../stylesheets"
end
в моєму application.rb умовно полягає в тому, щоб заборонити Heroku від перерви при запуску, коли config.sass більше не буде доступний, як це потрібно для попередньої компіляції.