ActionView ::Шаблон ::Ошибка (не предварительно скомпилирован ):на кедре героку

ОБНОВЛЕНИЕ:

Оказывается, иногда results.image был нулевым или "", так что это нарушало работу приложения, потому что конвейер ресурсов искал изображение, подобное "", и не находил его. Прямо сейчас я не показываю изображение, если его нет, но мне придется добавить изображение по умолчанию для отсутствующих изображений... это должно быть более постоянным исправлением.


У меня есть несколько вопросов SO об этой проблеме кедра героку и конвейера ресурсов Rails, и я пробовал несколько решений, но ни одно из них не работает, и, вероятно, это потому, что проблема, с которой я сталкиваюсь, имеет морщину, которая Я больше нигде не видел.

В моем приложении используется Rails 3.2.6, и я развернул его на кедровом стеке Heroku. Это простое поисковое приложение, которое ищет прикрепленную базу данных postgres через websolr,поэтому, когда вы загружаете индекс (индекс #индекс )без параметров [:q].present? вы получаете окно поиска, и это отлично работает. Но когда я помещаю что-то в поле поиска и нажимаю «Отправить», индекс снова загружается #, но на этот раз пытается отобразить результаты, я получаю:

app[web.1]: Completed 500 Internal Server Error in 440ms
app[web.1]: 
app[web.1]: ActionView::Template::Error ( isn't precompiled):
app[web.1]:     12:         - @results.each do |result|
app[web.1]:     13:           %li
app[web.1]:     14:             %div
app[web.1]:     15:               = image_tag result.image
app[web.1]:     16:             %div
app[web.1]:     17:               = result.title
app[web.1]:     18:             %div
app[web.1]:   app/views/index/index.html.haml:15:in `block in _app_views_index_index_html_haml___4350601325072829986_32734540'
app[web.1]:   app/views/index/index.html.haml:12:in   _app_views_index_index_html_haml___4350601325072829986_32734540'

Что странно в моем конкретном случае по сравнению с другими, которые я видел, так это следующая строка:

ActionView::Template::Error ( isn't precompiled):

Со всеми другими вопросами, подобными этому, которые я видел, в скобках есть файл css, то есть («foo.css» не предварительно скомпилирован ), или в моем случае кажется, что он должен быть ("index.css" не компилируется предварительно ). А здесь просто пусто!

Это мое промежуточное развертывание, которое я пытаюсь заставить работать, поэтому я попытался запустить RAILS _ENV=staging rake assets :прекомпиляция (затем, конечно, фиксация результатов ), но это не решает проблему. Я даже попытался убрать в представлении (заметив отсутствие каких-либо реальных стилей ). Ничего не работает, и я в растерянности. Любая помощь будет принята с благодарностью.

Для справки, вот мой gemfile:

source 'https://rubygems.org'

gem 'rails', '3.2.6'
gem 'pg'
gem 'haml-rails'
gem 'mongoid'
gem 'sunspot_rails', '~> 1.3.0'
gem 'sunspot_solr'


# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'
  gem 'uglifier', '>= 1.0.3'
end

gem 'jquery-rails'

group :development do
  gem 'heroku_san'
  gem 'annotate'
  gem 'awesome_print'
end

group :development, :test do
  gem 'rspec-rails'
end

group :test do
  gem 'cucumber-rails', :require => false
  gem 'capybara'
  gem 'database_cleaner'
  gem 'spork'
  gem 'launchy'
end

group :staging, :production do
  gem 'thin'
end

Вот параметры конфигурации в моем файле config/application.rb:

config.encoding = "utf-8"
config.filter_parameters += [:password]
config.active_support.escape_html_entities_in_json = true
config.active_record.whitelist_attributes = true
config.assets.enabled = true
config.assets.version = '1.0'
config.assets.compile = true

А вот параметры конфигурации в моем файле environments/staging.rb:

config.cache_classes = true
config.consider_all_requests_local       = false
config.action_controller.perform_caching = true
config.serve_static_assets = false
config.assets.compress = true
config.assets.compile = true
config.assets.precompile += ['index.css.scss']
config.assets.digest = true
config.i18n.fallbacks = true
config.active_support.deprecation = :notify
11
задан Jon Stokes 22 July 2012 в 17:09
поделиться