2012-07-21 31 views
10

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 
+0

chỉ chạy vào cùng một vấn đề. xe tăng rất nhiều! – rickypai

Trả lời

16

Có cơ hội bạn có URL hình ảnh trống ở đâu đó không? Bạn có cài đặt CarrierWave không?

Tôi thấy từ mã của bạn image_tag result.image phục vụ - liệu điều này có thể là không?

chủ đề này nên giải quyết nó: ActionView::Template::Error (isn't precompiled):

+0

Tôi chưa cài đặt CarrierWave nhưng có thể một trong các URL hình ảnh trống. Tôi sẽ kiểm tra và đăng kết quả. –

+0

Vì vậy, việc loại bỏ hình ảnh trống và không hoạt động! Tôi sẽ đăng một bản cập nhật. –

+0

Ngọt ngào .... Thời gian tốt w/Đường ống tài sản ... – cman77

Các vấn đề liên quan