Rails 3.1 / Active Admin / Heroku ошибка при первой загрузке - Sass :: SyntaxError - PullRequest
3 голосов
/ 10 октября 2011

Если приложение какое-то время бездействует, оно выдает следующую ошибку:

Sass::SyntaxError (File to import not found or unreadable: active_admin/mixins.

Если я обновляю страницу, она прекрасно загружается без каких-либо ошибок.

Этопроблема Heroku или настоящая ошибка приложения?Кто-нибудь знает какие-либо решения?

Ответы [ 5 ]

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

Вам необходимо удалить гем 'sass-rails', "~> 3.1.0" из набора групп.

1 голос
/ 02 августа 2012

Я пробовал несколько вещей безрезультатно.Я попробовал прекомпилировать локально и на Heroku.

Когда я захожу на сайт Heroku, я получаю ...

ActionView::Template::Error (File to import not found or unreadable: active_admin/mixins.
2012-08-01T22:00:22+00:00 app[web.2]: Load paths:
2012-08-01T22:00:22+00:00 app[web.2]:   /app
2012-08-01T22:00:22+00:00 app[web.2]:   /app/vendor/bundle/ruby/1.9.1/gems/activeadmin-0.4.4/app/assets/stylesheets
2012-08-01T22:00:22+00:00 app[web.2]:   (in /app/app/assets/stylesheets/active_admin.css.scss)):
2012-08-01T22:00:22+00:00 app[web.2]:     6:   <title><%= [@page_title, active_admin_application.site_title].compact.join(" | ") %></title>
2012-08-01T22:00:22+00:00 app[web.2]:     7: 
2012-08-01T22:00:22+00:00 app[web.2]:     8:   <% ActiveAdmin.application.stylesheets.each do |style| %>
2012-08-01T22:00:22+00:00 app[web.2]:     9:     <%= stylesheet_link_tag style.path, style.options %>
2012-08-01T22:00:22+00:00 app[web.2]:     10:   <% end %>
2012-08-01T22:00:22+00:00 app[web.2]:     11:   <% ActiveAdmin.application.javascripts.each do |path| %>
2012-08-01T22:00:22+00:00 app[web.2]:     12:     <%= javascript_include_tag path %>
2012-08-01T22:00:22+00:00 app[web.2]:   app/assets/stylesheets/active_admin.css.scss:2
1 голос
/ 20 октября 2011

добавьте sass_heroku.rb в config / инициализаторы, и это должно сработать

heroku = !!ENV['HEROKU_TYPE']
css_dir = heroku ? 'tmp' : 'public'
location = Rails.root + 'app/styles'

unless Sass::Plugin.template_location_array.any? { |pair| pair.first.to_s == location.to_s }
    Sass::Plugin.add_template_location(location, Rails.root + css_dir + 'stylesheets')
end

if heroku
  Sass::Plugin.template_location_array.each do |template_location, css_location|
    css_location.sub!(%r{/public/stylesheets$}, "/#{css_dir}/stylesheets")
  end
  Rails.configuration.middleware.insert_after 'Sass::Plugin::Rack', 'Rack::Static', :urls => ['/stylesheets'], :root => "#{Rails.root}/tmp"
end
1 голос
/ 12 октября 2011

Я думаю, у вас есть синтаксическая ошибка Sass, с которой работает конвейер ресурсов во время компиляции.Причина, по которой это происходит только после бездействия, заключается в том, что Heroku отключает приложение и нуждается в перезапуске для обслуживания запроса, поэтому конвейер ресурсов снова «просыпается».

0 голосов
/ 09 мая 2012

Я попробовал решение Стефана Пола, хотя я не достаточно умен, чтобы понять его - не помогло.

Что решило проблему для меня, так это предварительная компиляция заранее.

Просто чтобы уточнить, я видел эту ошибку только при попытке использовать activeadmin на Heroku - отлично работал в разработке.

И решение состояло в том, чтобы запустить rake assets:precompile и убедиться, что git фиксирует каталог public / assets для heroku, который затем не перекомпилирует сами ресурсы, поэтому ошибка будет пропущена.

...