Ich bin gerade dabei, meine erste Solo-Rails-App mit Rails 3.1.rc5 zu erstellen. Mein Problem ist, dass meine Site die verschiedenen CSS-Dateien unter bestimmten Bedingungen rendern soll. Ich verwende Blueprint CSS und versuche, Kettenräder / Schienen die screen.cssmeiste Zeit print.cssnur beim Drucken und ie.cssnur beim Zugriff auf die Site über Internet Explorer rendern zu lassen .
Leider enthält der Standardbefehl *= require_treeim application.cssManifest alles im assets/stylesheetsVerzeichnis und führt zu einem unangenehmen CSS-Durcheinander. Meine aktuelle Problemumgehung ist eine Art Brute-Force-Methode, bei der ich alles einzeln spezifiziere:
In application.css:
*= require_self
*= require home.css
...
*= require blueprint/screen.css
In meinen Stylesheets teilweise (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"
Das funktioniert, ist aber nicht besonders hübsch. Ich habe ein paar Stunden lang gesucht, um überhaupt so weit zu kommen, aber ich hoffe, dass es einen einfacheren Weg gibt, den ich gerade verpasst habe. Wenn ich sogar bestimmte Verzeichnisse selektiv rendern könnte (ohne Unterverzeichnisse einzuschließen), würde dies den gesamten Prozess viel weniger starr machen.
Vielen Dank!