Dường như, trong đường ray 3.1, tất cả các tệp css.scss được hợp nhất thành 1 tệp. Tôi phải làm gì nếu tôi muốn một tệp css chỉ được đưa vào một số chế độ xem? Giống như nếu tôi muốn admin.css.scss được bao gồm trong trang quản trị và tệp main.css.scss trong trang chủ/about/contact.Rails3.1 - Làm cách nào để bao gồm các tệp css trong một số chế độ xem nhưng không bao gồm các tệp khác?
Trả lời
Trong Rails 3.1, tất cả các stylesheets của bạn sẽ được sáp nhập vào application.css nếu application.css của bạn trông giống như:
/*
* 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 .
*/
Đó là do sự * = require_tree.
Bạn có thể yêu cầu một kiểu cụ thể với:
*= require main
Nếu không, trong cách bố trí của bạn, bạn viết:
%head
= yield :head
và trong trang của bạn:
= content_for :head do
= stylesheet_link_tag 'stylesheet'
Xem thêm:
http://guides.rubyonrails.org/layouts_and_rendering.html
(xem phần 2.2.14 'Finding Layouts')
bạn có thể có bố trí khác nhau cho các bộ điều khiển khác nhau!
ví dụ: trong ứng dụng/lượt xem/bố cục bạn có thể có application.haml và admin.haml và trong ứng dụng/bộ điều khiển bạn sẽ có một admin_controller.rb
Đường ray sẽ cố gắng tìm bố cục có cùng tên với bộ điều khiển.
Bạn cũng có thể ghi đè lên hành vi này và xác định bố trí sử dụng, ví dụ .:
class ItemsController < ApplicationController
layout "admin"
#...
end
Sau đó, bạn sẽ tạo ra một file admin.scss dưới app/stylesheets cho bố trí mới này!
Hãy để tôi thêm một giải pháp làm việc cho tôi.
Như đã đề cập trong một câu trả lời trước bạn có thể muốn loại bỏ các tuyên bố
*= require_tree .
từ application.css tập tin.
tôi vẫn tiếp tục tuyên bố
*= require_self
cho kiểu được chia sẻ trên các ứng dụng.
Sau đó, trong application.html tập tin của tôi, tôi sử dụng những điều khoản sau đây để chỉ bao gồm các application.css và controller.controller_name.css style sheets trong giao diện.
= stylesheet_link_tag "application", controller.controller_name
= javascript_include_tag "application", controller.controller_name
Như bạn có thể thấy các tác phẩm tương tự cho tệp JavaScript.
- 1. Cách bao gồm mã html trong chế độ xem?
- 2. Cách bao gồm các tệp cấu hình khác trong web.xml
- 3. Bao gồm các tệp R?
- 4. Bao gồm một tệp JSP khác
- 5. Codeigniter: Cách bao gồm các tệp javascript
- 6. Bao gồm tệp JavaScript trong một phần lượt xem
- 7. subversion diff bao gồm các tệp mới
- 8. Bao gồm tệp .cpp?
- 9. Tự động bao gồm các tệp XSL khác trong XSLT
- 10. Spring MVC - bao gồm các tệp tĩnh/javascript, css
- 11. Bao gồm tệp .js trong tệp .js
- 12. iOS làm động một chế độ xem bao gồm các bản xem trước
- 13. Kiến: Đổi tên các tệp để bao gồm MD5
- 14. Hằng số và Bao gồm các tệp trong TSQL
- 15. Làm cách nào để bao gồm tệp .pl trong Prolog?
- 16. Bao gồm tệp lô trong tệp lô
- 17. Bỏ qua một tệp khi hợp nhất - nhưng bao gồm tệp đó trong các lần đẩy
- 18. cmake bao gồm h tệp từ các thư mục khác
- 19. Tệp .js có thể "bao gồm" một tệp .js khác
- 20. ASP.NET MVC3: Xuất bản không bao gồm tệp CSS (.less)
- 21. Làm cách nào để bao gồm các tệp DLL trong tệp .csproj của tôi?
- 22. Có thể bao gồm một tệp MetaPost khác không?
- 23. tar/gzip không bao gồm các tệp nhất định
- 24. Thêm UIView trên tất cả các chế độ xem khác, bao gồm StatusBar
- 25. Bao gồm các tệp bổ sung trong .bashrc
- 26. Bao gồm các tệp kết cấu vào tệp collada
- 27. php bao gồm có cách nào để bao gồm một tệp tương đối chỉ với tài liệu đó không?
- 28. Tính năng bao gồm các tệp JSP vào mùa xuân và động bao gồm
- 29. Làm thế nào để tạo một tệp JAR bao gồm các tệp DLL?
- 30. Đường ray: Cách bao gồm thẻ meta trong chế độ xem chứ không phải trong application.html.erb?
% head và yield: head bit làm gì? –
Trong Haml: % đầu = lợi nhuận: đầu Sẽ tạo thẻ
trong HTML và chèn mã từ trang khác thông qua sản lượng – damienbrz