2011-11-07 25 views
6

Tôi đã có một loạt các tệp tin 'bootstrap' sass mà tôi muốn sử dụng trong thư mục /lib của mình, theo các quy ước mới của đường ống nội dung.Rails 3.1: Sass Nhập từ Lib

Tuy nhiên, tôi cần nhập các mã này vào số application.css.scss thay vì yêu cầu chúng, vì tôi muốn chia sẻ một số biến màu, v.v. trong suốt ứng dụng. Tôi đã không thể tìm ra cách để có được @import để lấy tệp .scss từ /lib/assets/stylesheets.

Mọi đề xuất?

Trả lời

10

@importnên cái nhìn đối với bất kỳ .css.scss file nằm trong con đường tài sản tải của bạn, có thể là trong app/assets/stylesheets, lib/assets/stylesheets, vendor/assets/stylesheets, hoặc bất kỳ đường dẫn bổ sung thêm bằng đá quý, do đó, nó lẻ rằng bạn đang nhận được một lỗi.

Lưu ý bạn không cần phải vượt qua một tên thư mục khi sử dụng @import trừ các tập tin nằm trong một thư mục con của assets/stylesheets - sass-rails sẽ xem xét thông qua tất cả các thư mục trên con đường tải của bạn và xem nếu tài nguyên tồn tại liên quan đến các thư mục.

Để đảm bảo rằng lib/assets/stylesheets nằm trong đường dẫn tải nội dung của bạn (vì nó là tùy chọn mặc định), hãy mở lời nhắc Rails và nhập Rails.application.config.assets.paths. Như một ví dụ, đây là kết quả cho một trong những ứng dụng của tôi:

ruby-1.9.3-p0 :012 > Rails.application.config.assets.paths 
=> ["/Users/tom/ruby/qa/app/assets/images", 
"/Users/tom/ruby/qa/app/assets/javascripts", 
"/Users/tom/ruby/qa/app/assets/stylesheets", 
"/Users/tom/ruby/qa/lib/assets/stylesheets", 
"/Users/tom/ruby/qa/vendor/assets/javascripts", 
"/Users/tom/ruby/qa/vendor/assets/stylesheets", 
"/Users/tom/.rvm/gems/ruby-1.9.3-p0/gems/jquery-rails-1.0.14/vendor/assets/javascripts", 
"/Users/tom/.rvm/gems/ruby-1.9.3-p0/gems/bootstrap-sass-1.4.0/vendor/assets/javascripts", 
"/Users/tom/.rvm/gems/ruby-1.9.3-p0/gems/bootstrap-sass-1.4.0/vendor/assets/stylesheets"] 

Nó cũng đáng đảm bảo rằng sass-rails được cập nhật và chạy phiên bản mới nhất, kể từ khi tôi tin rằng phiên bản đầu tiên được sự ủng hộ giới hạn về cross-thư mục @import.

NB: Tôi cũng tin rằng ước cho thấy các tập tin như Bootstrap hoặc jQuery nên đi trong thư mục vendor/assets của bạn chứ không phải là lib/assets

+0

Cảm ơn sự giúp đỡ, tôi đã làm việc đó. Tôi phải có một lỗi đánh máy ở đâu đó. FWIW tệp bootstrap được đề cập là tạo tùy chỉnh của riêng tôi mà tôi sử dụng để bắt đầu bất kỳ ứng dụng mới nào, vì vậy với tôi có vẻ như "lib" (được chia sẻ giữa các ứng dụng của riêng tôi) chứ không phải "nhà cung cấp" (bản phân phối công khai). – Andrew

+0

Vâng, điều đó có ý nghĩa, tôi vừa tham gia các dấu chấm giữa nhận xét của bạn về câu trả lời hôm qua và câu hỏi của bạn ngay bây giờ và thấy rằng bạn đang sử dụng một số phiên bản Bootstrap của Twitter, trong trường hợp đó, bỏ qua chú thích của tôi, 'lib' chắc chắn là đúng place – nobody

+0

Oh ... :) Trên thực tế, lý do chính cho nhận xét của tôi về câu trả lời của bạn là tôi rất vui khi tìm thấy một ví dụ về bootstrap được tạo thành một gem sử dụng đường dẫn nội dung. Tôi muốn trích xuất bootstrap tùy chỉnh của tôi vào một gem một ngày nào đó và bạn là một tham chiếu tuyệt vời về cách làm điều đó. Để bây giờ chỉ cần di chuyển nó vào lib là một dọn dẹp tốt đẹp. Cảm ơn một lần nữa! – Andrew

8

tôi đã cùng một vấn đề, và đó là vì tôi quên máy chủ khởi động lại sau khi thêm tệp vào thư mục lib.

+1

Doh. Tôi sẽ quên việc này bao nhiêu lần. (quá nhiều) –

+1

Yup đã làm điều đó – Yarin

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