Tôi đang trong quá trình xây dựng ứng dụng Rails solo đầu tiên của mình bằng Rails 3.1.rc5. Vấn đề của tôi là tôi muốn trang web của mình hiển thị các tệp CSS khác nhau một cách có điều kiện. Tôi đang sử dụng Blueprint CSS và tôi đang cố gắng để sprockets / rails hiển thị screen.css
hầu hết thời gian, print.css
chỉ khi in và ie.css
chỉ khi trang web được truy cập từ Internet Explorer.
Thật không may, *= require_tree
lệnh mặc định trong application.css
tệp kê khai bao gồm mọi thứ trong assets/stylesheets
thư mục và dẫn đến một mớ lộn xộn CSS khó chịu. Cách giải quyết hiện tại của tôi là một loại phương pháp vũ phu trong đó tôi chỉ định mọi thứ riêng lẻ:
Trong application.css:
*= require_self
*= require home.css
...
*= require blueprint/screen.css
Trong bảng định kiểu của tôi một phần (haml):
<!--[if lt IE 9]
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
![endif]-->
= stylesheet_link_tag "application"
= stylesheet_link_tag 'blueprint/print', media: 'print'
<!--[if lt IE8]]
= stylesheet_link_tag 'blueprint/ie'
![endif]-->
= javascript_include_tag "application"
Điều này hoạt động nhưng nó không đặc biệt đẹp. Tôi đã thực hiện một vài giờ tìm kiếm để thậm chí đi xa đến mức này nhưng tôi hy vọng rằng có một cách dễ dàng hơn để làm điều đó mà tôi vừa bỏ lỡ. Nếu tôi thậm chí có thể chọn lọc kết xuất một số thư mục nhất định (không bao gồm các thư mục con), nó sẽ làm cho toàn bộ quá trình trở nên cứng nhắc hơn rất nhiều.
Cảm ơn!