2011-10-04 30 views
7

Tôi nhận được lỗi sau:Rails 3.1 không biên dịch trước các hình ảnh không được tham chiếu bởi CSS?

Sprockets::Helpers::RailsHelper::AssetPaths::AssetNotPrecompiledError in Photos#edit 

Showing .../app/views/photos/_form.html.haml where line #49 raised: 

taxonomy/focus-building.jpg isn't precompiled 

Extracted source (around line #49): 

46:        = focus.code 
47:       .tooltip 
48:        %span.name= focus.name 
49:        = image_tag("taxonomy/focus-#{focus.code.downcase.dehumanize}.jpg") 
50:    /Help Overlay 
51:     .help 
52:      %a.overlay{:href=>"#", :rel=>'#help-focus'} Learn more about focus 

file ảnh này nằm trong app/assets/images/taxonomy/focus-building.jpg. Tôi đã chạy rake assets:precompile RAILS_ENV=production, nhưng theo như tôi có thể nói hình ảnh không được sao chép vào thư mục public/assets.

Thật kỳ lạ, tất cả nội dung được đề cập trong SCSS sử dụng image-url() đều hoạt động tốt. Tại sao báo cáo hình ảnh này không được biên dịch trước khi được đề cập đến với image_tag?

+0

Bạn có đang sử dụng Rails 3.1.1 hoặc 3.1.0 không? – Christos

+0

Tôi đang ở trên Rails 3.1.1 – Andrew

+0

Tôi đang thêm +1 vào điều này. Tôi đang ở trên Rails 3.1.3 và tôi đang gặp vấn đề tương tự. Tôi sắp sẵn sàng đấm đường ống tài sản vào mặt. –

Trả lời

0

Tôi gặp vấn đề tương tự với image_tag. Tôi đã giải quyết được vấn đề bằng cách sử dụng trình biên dịch trực tiếp.

Trong production.rb

  • config.assets.compile = true
+1

Vâng, điều đó sẽ làm việc ngoại trừ môi trường triển khai của tôi không thể làm biên dịch trực tiếp trong thời gian này. Rất tiếc, đây không phải là một lựa chọn. – Andrew

+1

Đó là một cách giải quyết, và do đó hoạt động trong một nhúm - nhưng nó vẫn không thực sự được bật trong sản xuất nếu bạn lo lắng về hiệu suất (và chúng ta hãy đối mặt với nó - trong sản xuất, * bạn đang lo lắng về hiệu suất *). –

2

Nếu bạn có tùy chọn assets.digest kích hoạt này sẽ thêm một băm vào cuối tên và do đó, một tham chiếu tĩnh đến tệp đó sẽ không còn hoạt động nữa, thay đổi bất kỳ nội dung được tham chiếu tĩnh nào để chúng sử dụng các phương thức trợ giúp.

+0

Đối với những gì nó có giá trị, điều này dường như đã giúp tôi. Bằng cách nào đó, cho phép tiêu hóa trong chế độ sản xuất kết thúc làm cho máy chủ phục vụ các tài sản đáng tin cậy hơn. Tuy nhiên, tôi vẫn muốn đấm đường ống tài sản. –

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