Подтвердить что ты не робот

Правильный способ вызова медиа-специфического css в конвейере Rails 3.1

Каков правильный/рельсы/наилучшая практика для вызова специфических для мультимедиа (т.е. печати, экрана и т.д.) css при использовании конвейера Rails 3.1? Я знаю, что это было задано раньше, но все решения, которые я видел, кажутся очень взломанными, а не элегантным решением Rails, которое я ожидал.

Насколько я могу судить, предлагаемый подход заключается в настройке папки стилей следующим образом:

assets
-stylesheets
--application.css
--application-print.css
--print
---custom-print.css
--screen
---custom-screen.css

содержимое application.css

/*
*= require_self
*= require_tree ./screen
*/

содержимое application-print.css

/*
*= require_self
*= require_tree ./print
*/

затем включить следующее в макет

<%= stylesheet_link_tag 'application', media = 'screen, projection' %>
<%= stylesheet_link_tag 'application-print', media = 'print' %>

Хорошо, пока все хорошо.

НО, в моем случае custom-print.css применяется на экране, а css не применяется к печатным выводам.

Кроме того, этот подход влияет на изображения, вызванные css. то есть вместо поиска изображений в активах/изображениях он теперь ищет изображения в свойствах/таблицах стилей/экране. Здесь может быть что-то еще, потому что это похоже только на javascript css, на который влияет. Я сделаю еще несколько проверок и отчитаюсь.

Итак, мой вопрос: как вы относитесь к медиа-специфическому css в конвейере Rails? Что считается лучшей практикой? И что я делаю неправильно?

Спасибо за ваше время!

4b9b3361

Ответ 1

Проблема заключается в синтаксисе вызова метода.

stylesheet_link_tag 'application', :media => 'screen, projection'
stylesheet_link_tag 'application-print', :media => 'print'

В вашем коде вы назначали локальную переменную с именем media