2012-02-28 20 views
7

Mục đích:chọn lọc vô hiệu hóa asset.digest trong Rails 3, vì vậy trang web bên ngoài có thể bao gồm stylesheet

Tôi muốn một blog Tumblr để kéo CSS từ thư mục tài sản của ứng dụng trên Rails.

Điều này có nghĩa là tôi có thể sử dụng SASS, Compass và CSS trang web khác để tạo kiểu.

Điều này cũng có nghĩa là nếu mọi thứ được cập nhật ở CSS cấp thấp, tumblr.css sẽ được tạo lại cùng với thông số cap deploy thông thường và giao diện của Tumblr sẽ tự động thay đổi.

Vấn đề:

Các Rails 3 đường ống dẫn tài sản thêm một băm để tên tập tin, ví dụ:

tumblr-c6ec969ce054623163b9404f6c8330e9.css

Do đó mẫu Tumblr không thể bao gồm nó, trừ khi tôi cập nhật URL thủ công mỗi khi nó thay đổi.

Có cách nào để vô hiệu hóa một cách chọn lọc asset.digest cho một tệp hoặc tạo rõ ràng một tệp CSS từ SASS mà không phải trải qua toàn bộ đường dẫn nội dung không? Hoặc có thể để tạo ra một bí danh tự động hoặc một cái gì đó?

Trả lời

5

Bạn sẽ không phải tắt tất cả các thông báo.

Khi Rails biên dịch trước nội dung, nó sẽ thêm thông tin vào tất cả các tệp. Tuy nhiên nó cũng tạo ra các tập tin giống hệt nhau mà không cần tiêu hóa. Vì vậy, cả các tập tin sau đây sẽ được tải css giống nhau:

  • tumblr-c6ec969ce054623163b9404f6c8330e9.css
  • tumblr.css

Nếu bạn đánh dấu vào public/assets thư mục sau khi tiền biên dịch, bạn sẽ thấy tất cả các file.

Hy vọng điều này sẽ hữu ích.

+2

Hmm, đây chắc chắn không phải là trường hợp với việc triển khai của tôi. Có _no_ tập tin trong 'public/assets' mà không cần tiêu hóa. Có lẽ tôi đã phá vỡ một cái gì đó trong biên dịch trước rồi? – Leo

+0

Bạn có đang chạy với môi trường chính xác không? Như thế này: 'tài sản rake: biên dịch trước RAILS_ENV = sản xuất ' –

+0

Trong Capistrano, bạn có thể phải thêm' set: rails_env,: production' vào công thức của bạn. –

3

Trong Rails 4 có vẻ như phần tử biên dịch tài sản không còn làm cả tên tệp thông báo và không tiêu hóa nữa, chỉ các tên tệp có tiêu hóa mới được biên dịch. Lựa chọn tốt nhất hiện nay để precompile tài sản mà không có một băm tiêu hóa là sử dụng không ngốc Digest Tài sản đá quý:

https://github.com/alexspeller/non-stupid-digest-assets 

Hy vọng rằng họ thêm video này vào dự án Rails là một tính năng tiêu chuẩn trong Rails 5.

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