如果使用Rails 3.1资产管道,调用特定媒体(即打印,屏幕等)css的正确/ rails /最佳实践方法是什么?我知道之前已经问过这个问题,但是我看到的所有解决方案看起来都非常糟糕,而不是我所期待的优雅的Rails解决方案。
据我所知,建议的方法是设置stylesheets文件夹,如下所示:
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。我会做更多检查并报告。
所以我的问题是,你如何在Rails资产管道中处理媒体特定的css?什么被认为是最佳实践?我做错了什么?
谢谢你的时间!
答案 0 :(得分:16)
问题是方法调用的语法。
stylesheet_link_tag 'application', :media => 'screen, projection'
stylesheet_link_tag 'application-print', :media => 'print'
在您的代码中,您分配了一个名为media