Estou no processo de construção do meu primeiro aplicativo solo do Rails usando o Rails 3.1.rc5. Meu problema é que eu quero que meu site processe os vários arquivos CSS condicionalmente. Estou usando o CSS do Blueprint e estou tentando fazer com que as rodas dentadas / trilhos sejam processadas na screen.css
maioria das vezes, print.css
apenas durante a impressão e ie.css
somente quando o site é acessado pelo Internet Explorer.
Infelizmente, o *= require_tree
comando padrão no application.css
manifesto inclui tudo no assets/stylesheets
diretório e resulta em uma desordem desagradável de CSS. Minha solução atual é uma espécie de método de força bruta em que eu especifico tudo individualmente:
No application.css:
*= require_self
*= require home.css
...
*= require blueprint/screen.css
Nas minhas folhas de estilo parciais (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"
Isso funciona, mas não é especialmente bonito. Fiz algumas horas de pesquisa para chegar até aqui, mas espero que exista uma maneira mais fácil de fazer isso que acabei de perder. Se eu pudesse renderizar seletivamente certos diretórios (sem incluir subdiretórios), isso tornaria todo o processo muito menos rígido.
Obrigado!