Jestem w trakcie tworzenia mojej pierwszej solowej aplikacji Rails przy użyciu Rails 3.1.rc5. Mój problem polega na tym, że chcę, aby moja witryna warunkowo renderowała różne pliki CSS. Używam Blueprint CSS i staram się renderować koła zębate / szyny przez screen.csswiększość czasu, print.csstylko podczas drukowania i ie.csstylko wtedy, gdy strona jest otwierana z przeglądarki Internet Explorer.
Niestety, domyślne *= require_treepolecenie w application.cssmanifeście zawiera wszystko w assets/stylesheetskatalogu i powoduje nieprzyjemne pomieszanie CSS. Moje obecne obejście to rodzaj metody brutalnej siły, w której określam wszystko indywidualnie:
W application.css:
*= require_self
*= require home.css
...
*= require blueprint/screen.css
W moich arkuszach stylów częściowe (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"
To działa, ale nie jest szczególnie ładne. Poświęciłem kilka godzin na szukanie, aby dojść tak daleko, ale mam nadzieję, że jest na to jakiś łatwiejszy sposób, który właśnie przegapiłem. Gdybym mógł nawet selektywnie renderować niektóre katalogi (bez włączania podkatalogów), cały proces byłby znacznie mniej sztywny.
Dzięki!