У меня есть html5-rails и compass-html5 , работающие в devlopment на рельсах 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 file
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 Пробег RAILS_ENV=production bundle exec rake assets:precompile
6 Запустите 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.