2009-08-26 14 views
5

Xin chào, tôi là người mới đối với Rails và Ruby nói chung. Tôi đã tự hỏi nếu nó có thể sử dụng một tập tin css ruby ​​nhúng (css.erb), tương tự như sử dụng các tập tin html.erb cho xem.Có thể sử dụng stylesheet.css.erb trong Rails không?

Ví dụ, tôi đang sử dụng

<%= stylesheet_link_tag "main" %> 

liên kết đến file main.css của tôi ở nơi công cộng/stylesheets, nhưng khi tôi thay đổi phần mở rộng tập tin từ main.css để main.css.erb, nó không còn hiển thị css ..

Điều này thậm chí có thể, hoặc có cách nào tốt hơn không?

Trả lời

3

Tôi không nghĩ vậy. Whats ý định của bạn - để sử dụng các biến và có chúng được đánh giá trong thời gian chạy, hoặc "biên dịch" thời gian (có nghĩa là như thời gian triển khai?). Ngoài ra, những gì sẽ là ERB ràng buộc? Nó sẽ liên kết với bộ điều khiển, giống như khung nhìn và người trợ giúp, sao cho thể hiện ERB sẽ có quyền truy cập vào các biến cá thể được đặt trong bộ điều khiển? Tôi chỉ đặt ra câu hỏi này như một bài tập lý thuyết hơn.

Nếu bạn muốn sử dụng các biến trong CSS của mình, bạn có thể sử dụng SASS của Haml. Bạn không nhận được quyền truy cập vào phạm vi của bộ điều khiển nhưng bạn sẽ nhận được các biến cơ bản và lặp. Cộng với những thứ tuyệt vời khác như mixin.

4

Bạn cũng có thể tạo ra một "stylesheets" điều khiển

./script/generate controller stylesheets main admin maintenance 

Bạn nhận được một cái gì đó như thế này:

 exists app/controllers/ 
     exists app/helpers/ 
     create app/views/stylesheets 
     exists test/functional/ 
     exists test/unit/helpers/ 
     create app/controllers/stylesheets_controller.rb 
     create test/functional/stylesheets_controller_test.rb 
     create app/helpers/stylesheets_helper.rb 
     create test/unit/helpers/stylesheets_helper_test.rb 
     create app/views/stylesheets/main.html.erb 
     create app/views/stylesheets/admin.html.erb 
     create app/views/stylesheets/maintenance.html.erb 

Và sau đó bạn có thể sử dụng app/views/stylesheets/file như tự động trả lại css các tập tin.

Cùng một phương pháp làm việc cho các tập tin javascript (javascripts controller)

+1

Có cách nào để máy chủ bản định kiểu thông qua bộ điều khiển và vẫn sử dụng bộ đệm đệm định kiểu đường ray không? – Pablo

22

Vào thời điểm câu hỏi này được trả lời thực sự không có cách nào để sử dụng .css.erb file trong đường ray đúng cách.

Nhưng đường ray mới 3.1 đường ống nội dung cho phép bạn sử dụng trình trợ giúp nội dung bên trong tệp css của bạn. Các phân tích cú pháp css không bị ràng buộc một phạm vi điều khiển/hành động, nhưng phân tích cú pháp ruby ​​bây giờ có thể giải quyết một số vấn đề như đường dẫn hình ảnh tham chiếu

.class { background-image: url(<%= asset_path 'image.png' %>) } 

hoặc nhúng một hình ảnh trực tiếp vào css của bạn

#logo { background: url(<%= asset_data_uri 'logo.png' %>) } 

nguồn : http://guides.rubyonrails.org/asset_pipeline.html

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