ruby on rails - present - Manera correcta de llamar a css específicos de medios en el canal de activos de Rails 3.1
the asset is not present in the asset pipeline (1)
¿Cuál es la forma correcta / correcta / práctica recomendada de llamar a un medio específico (es decir, impresión, pantalla, etc.) css si se utiliza la canalización de activos de Rails 3.1? Sé que esto se ha preguntado anteriormente, pero todas las soluciones que he visto parecen muy intrépidas y no la elegante solución de Rails que he esperado.
Por lo que puedo decir, el enfoque sugerido es configurar la carpeta de hojas de estilo de la siguiente manera:
assets
-stylesheets
--application.css
--application-print.css
--print
---custom-print.css
--screen
---custom-screen.css
Los contenidos de application.css están siendo
/*
*= require_self
*= require_tree ./screen
*/
Los contenidos de application-print.css están siendo
/*
*= require_self
*= require_tree ./print
*/
A continuación, para incluir lo siguiente en el diseño.
<%= stylesheet_link_tag ''application'', media = ''screen, projection'' %>
<%= stylesheet_link_tag ''application-print'', media = ''print'' %>
OK, hasta ahora todo bien.
PERO, en mi caso, custom-print.css se está aplicando en pantalla, y no se está aplicando css a la salida impresa.
Además, este enfoque parece afectar a las imágenes llamadas desde css. es decir, en lugar de buscar imágenes en activos / imágenes, ahora está buscando imágenes en activos / hojas de estilo / pantalla. Puede que haya algo más en juego aquí, ya que parece que solo afecta a CSS CSS. Voy a hacer un poco más de comprobación e informe.
Entonces, mi pregunta es, ¿cómo está lidiando con el css específico de los medios en el inventario de activos de Rails? ¿Qué se considera la mejor práctica? ¿Y qué estoy haciendo mal?
¡Gracias por tu tiempo!
El problema es la sintaxis de la llamada al método.
stylesheet_link_tag ''application'', :media => ''screen, projection''
stylesheet_link_tag ''application-print'', :media => ''print''
En su código que estaba asignando a una variable local llamada media