Ich bin in den Prozess der Erstellung meiner ersten Solo Rails app mit Rails 3.1.rc5. Mein Problem ist, dass ich meine Website render die verschiedenen CSS-Dateien bedingt haben wollen. Ich verwende Blueprint CSS und ich versuche, sprockets/rails render haben screen.css
die meiste Zeit, print.css
nur beim Drucken, und ie.css
nur, wenn die Website über den Internet Explorer aufgerufen wird.
Leider ist der Standard *= require_tree
Befehl in der application.css
Manifest enthält alles in der assets/stylesheets
Verzeichnis und führt zu einem unangenehmen CSS-Wirrwarr. Meine derzeitige Abhilfe ist eine Art Brute-Force-Methode, bei der ich alles einzeln festlege:
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 schön. Ich habe ein paar Stunden der Suche getan, um sogar so weit zu kommen, aber ich hoffe, dass es einige einfachere Möglichkeit, es zu tun, die ich gerade verpasst habe. Wenn ich sogar bestimmte Verzeichnisse selektiv rendern könnte (ohne Unterverzeichnisse einzubeziehen), würde das den ganzen Prozess viel weniger starr machen.
Danke!