Tôi không thể lấy tiền tố đường dẫn tài sản Rails 3.1 để làm việc trong chế độ sản xuất. Nó luôn thất bại trên hình ảnh tham chiếu trong SCSS với một lỗi như:Ruby on Rails 3.1 tài sản: biên dịch trước và hình ảnh
$ bundle exec rake assets:precompile RAILS_ENV=production
rake aborted!
rails.png isn't precompiled
(in /home/florian/AssetTest/app/assets/stylesheets/application.css.scss)
Nhưng khi tôi nhìn vào thư mục công cộng/tài sản, hình ảnh là có, vì vậy nó được biên dịch sẵn:
$ ls public/assets | grep rails
rails-dd352fc2630e5f9aa5685ef1d7fe5997.png
Các SCSS tập tin trong trường hợp này chỉ chứa một số mã kiểm tra:
/*
* This is a manifest file that'll automatically include all the stylesheets available in this directory
* and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
* the top of the compiled file, but it's generally better to create a new file per style scope.
*= require_self
*= require_tree .
*/
body {
background: #ffffff image-url('rails.png') no-repeat 0 center;
}
Nếu tôi không sử dụng các helper image-url trong SCSS, nhưng chỉ url ('/ tài sản/rails.png'), tiền biên dịch hoạt động tốt, và tệp manifest.yml là g say mê công khai/tài sản.
Điều thú vị là: nếu tôi thay đổi SCSS trở lại url hình ảnh ('rails.png') và chạy một biên dịch trước, nó vẫn hoạt động (tôi đoán vì hình ảnh hiện đã được liệt kê trong tệp kê khai).
Tôi đang làm gì sai ở đây? Tôi không thực sự muốn bỏ qua các phương pháp trợ giúp (như sử dụng chúng là cách bạn nên làm điều đó, phải không?), Và tôi chắc chắn không muốn tạo tệp kê khai theo cách thủ công ...
Chỉ cần cập nhật lên Rails 3.1.1rc1 như được đề xuất trong vấn đề github, và nó hoạt động :-) – fwalch
Câu trả lời này có vẻ xấu vì lý do này: http://stackoverflow.com/questions/8821864/config-assets-compile- đúng-trong-rails-sản xuất-tại sao-không – Ringo