Cập nhật:ActionView :: Mẫu :: Lỗi (không được biên dịch trước): trên heroku cedar
Hóa ra đôi khi results.image là không hoặc "", vì vậy điều này đã phá vỡ ứng dụng vì đường dẫn nội dung đang tìm kiếm một hình ảnh như "" và không tìm thấy nó. Ngay bây giờ tôi không hiển thị một hình ảnh nếu không có một, nhưng tôi sẽ phải thêm một hình ảnh mặc định cho hình ảnh bị thiếu ... đó phải là một sửa chữa lâu dài hơn.
Tôi đã một số SO câu hỏi về vấn đề này của Heroku tuyết tùng và các đường ống dẫn tài sản Rails, và tôi đã thử một số giải pháp, nhưng không ai trong số họ làm việc, và nó có thể là vì vấn đề tôi 'có một nếp nhăn mà tôi đã không nhìn thấy bất cứ nơi nào khác.
Ứng dụng của tôi sử dụng Rails 3.2.6 và tôi đã triển khai nó trên ngăn tuyết tùng của Heroku. Đó là một ứng dụng tìm kiếm cơ bản tìm kiếm một db postgres đính kèm thông qua websolr, vì vậy khi bạn tải chỉ mục (index index index) mà không có tham số [: q] .present? bạn nhận được một hộp tìm kiếm, và điều này hoạt động tốt. Nhưng khi tôi đặt một cái gì đó trong hộp tìm kiếm và nhấn gửi, và chỉ số # chỉ số tải một lần nữa nhưng lần này cố gắng để hiển thị các kết quả, tôi nhận được:
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'
Có gì kỳ lạ về trường hợp đặc biệt của tôi so với những người khác tôi đã nhìn thấy là dòng sau:
ActionView::Template::Error (isn't precompiled):
với tất cả những câu hỏi khác như thế này tôi đã nhìn thấy, có một tập tin css trong ngoặc đơn, tức là ("foo.css" không được biên dịch sẵn), hoặc trong tôi trường hợp nó có vẻ như nó nên được ("index.css" không được biên dịch trước). Nhưng ở đây nó chỉ là trống!
Đây là triển khai dàn dựng của tôi mà tôi đang cố gắng làm việc, vì vậy tôi đã thử chạy RAILS_ENV = dàn dựng tài sản rake: biên dịch trước (sau đó cam kết kết quả, tất nhiên), nhưng điều đó không khắc phục được . Tôi thậm chí đã cố gắng tước ra trong xem (thông báo thiếu bất kỳ kiểu dáng thực tế có). Không có gì hiệu quả, và tôi thua lỗ. Mọi sự trợ giúp sẽ rất được trân trọng.
Để tham khảo, đây là gemfile tôi:
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
Dưới đây là các tùy chọn cấu hình trong config/tập tin application.rb tôi:
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
Và đây là những tùy chọn cấu hình trong môi trường của tôi/tệp 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
chỉ chạy vào cùng một vấn đề. xe tăng rất nhiều! – rickypai