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.css
sebagian besar waktu, print.css
hanya saat mencetak, dan ie.css
hanya ketika situs diakses dari Internet Explorer.
Sayangnya, *= require_tree
perintah default di application.css
manifes mencakup semua yang ada di assets/stylesheets
direktori 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!