У меня есть html5-rails и compass-html5 работает в devlopment on rails 3.1, но когда я запускаю свое приложение в производственном режиме и пытаюсь посетить свою домашнюю страницу, я получаю следующее:
Sprockets::Helpers::RailsHelper::AssetPaths::AssetNotPrecompiledError in Home#index
polyfills.js isn't precompiled
Дело в том, что localhost: 8080: /assets/polyfills.js действительно отображается. Я подозреваю, что есть проблема с моими методами:
Шаги для воспроизведения:
1 Создайте новое приложение rails с домашним контроллером, индексируйте действие и настройте корневой маршрут и удалите public / index.html и views / layouts / application.html.erb
2 Добавьте следующее в Gemfile
gem 'rails', '~> 3.1.0'
gem 'unicorn'
group :assets do
gem 'compass', "~> 0.12.alpha.0"
gem 'sass-rails', "~> 3.1.0"
gem 'coffee-rails', "~> 3.1.0"
gem 'uglifier'
gem 'compass-html5', :git => 'https://github.com/sporkd/compass-html5.git'
gem 'html5-rails', :git => "https://github.com/sporkd/html5-rails.git"
end
3 Выполните rails g html5: install
, чтобы создать ] /config/compass.rb файл
4 Создайте / config / initializers / sass.rb , содержащий следующий код:
Rails.configuration.sass.tap do |config|
config.load_paths << "#{Gem.loaded_specs['compass'].full_gem_path}/frameworks/compass/stylesheets"
end
5 Run RAILS_ENV = production bundle exec rake assets: precompile
6 Run unicorn -E production
(или rails s -e production
, если вы используете Webrick) и посетите корневой URL
7 Обратите внимание на ошибку
Правильно уменьшенные response-md5.min.js и modernizr-md5.min.js находится в / public / assets . Скомпилированный код js действительно появляется, когда я посещаю localhost: 8080 / assets / modernizr.min.js . Ошибка сервера возникает, когда я пытаюсь зайти на свою домашнюю страницу.
Я подозреваю, что в моем методе есть ошибка. Я задал тот же вопрос здесь на github.