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.css
większość czasu, print.css
tylko podczas drukowania i ie.css
tylko wtedy, gdy strona jest otwierana z przeglądarki Internet Explorer.
Niestety, domyślne *= require_tree
polecenie w application.css
manifeście zawiera wszystko w assets/stylesheets
katalogu 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!