Je suis en train de construire ma première application Rails solo en utilisant Rails 3.1.rc5. Mon problème est que je veux que mon site rende les différents fichiers CSS de manière conditionnelle. J'utilise Blueprint CSS et j'essaye de faire en sorte que sprockets/rails rendent screen.css
la plupart du temps, print.css
uniquement lors de l'impression, et ie.css
uniquement lorsque le site est accessible depuis Internet Explorer.
Malheureusement, l'option par défaut *= require_tree
dans le application.css
Le manifeste comprend tout ce qui se trouve dans le assets/stylesheets
et donne lieu à un désagréable fouillis CSS. Ma solution actuelle est une sorte de méthode de force brute où je spécifie tout individuellement :
Dans application.css :
*= require_self
*= require home.css
...
*= require blueprint/screen.css
Dans mes feuilles de style partielles (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"
Cela fonctionne mais ce n'est pas particulièrement joli. J'ai passé quelques heures à chercher pour arriver jusqu'ici, mais j'espère qu'il existe un moyen plus simple de le faire que j'ai manqué. Si je pouvais même rendre sélectivement certains répertoires (sans inclure les sous-répertoires), cela rendrait l'ensemble du processus beaucoup moins rigide.
Merci !