Saya sedang dalam proses membangun aplikasi solo Rails pertama saya menggunakan Rails 3.1.rc5. Masalah saya adalah saya ingin situs saya me-render berbagai file CSS secara kondisional. Saya menggunakan Blueprint CSS dan saya mencoba membuat sprocket / rel membuat screen.csssebagian besar waktu, print.csshanya saat mencetak, dan ie.csshanya ketika situs diakses dari Internet Explorer.
Sayangnya, *= require_treeperintah default di application.cssmanifes mencakup semua yang ada di assets/stylesheetsdirektori dan menghasilkan campur aduk CSS yang tidak menyenangkan. Solusi saya saat ini adalah semacam metode brute-force di mana saya menentukan semuanya secara individual:
Dalam application.css:
*= require_self
*= require home.css
...
*= require blueprint/screen.css
Di sebagian stylesheet saya (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"
Ini bekerja tetapi tidak terlalu cantik. Saya telah melakukan beberapa jam pencarian bahkan untuk sejauh ini tetapi saya berharap ada beberapa cara yang lebih mudah untuk melakukannya yang baru saja saya lewatkan. Jika saya bahkan dapat secara selektif membuat direktori tertentu (tanpa termasuk subdirektori) itu akan membuat keseluruhan proses menjadi jauh lebih tidak kaku.
Terima kasih!