我读到application.css中的以下行包含树中的所有css文件
*= require_tree .
我的困惑是,根据我的发现(如果我错了请纠正我),我需要在我的application.haml中添加以下行,如果我想要在与控制器渲染匹配时加载css文件它们:
= stylesheet_link_tag params[:controller]
疑惑1:我真的需要添加这一行吗?我认为这是按惯例自动完成的。 (我猜这个答案是肯定的,我需要包括这一行)
疑问2:由于application.css由于“require_tree。”而加载了所有css文件,会导致某些类型的冲突/搞乱其他每个css文件?
疑问3:如果我想使用require_tree加载该目录中的所有骨架文件,并且在屏幕呈现时,特别是加载控制器css,该怎么办?
例如,
我有:
我的application.css将包含所有css文件(由于require_tree)。 home.css意味着由家庭控制器加载,并且invitation.css应该由邀请控制器加载。我需要采取哪些措施来确保这一点?
答案 0 :(得分:3)
在带有资产管道的Rails 3.1中,有一个默认的sprocket命令require_tree .
,用于加载app / assets / stylesheets /中的所有文件,并将其编译为application.css。
= stylesheet_link_tag params[:controller]
命令基本上将此输出到您的视图中。
= stylesheet_link_tag :products
。
这是 not ,需要将所有文件编译到application.css中。默认情况下,所有文件都会自动编译到application.css中。
如果不 require_tree .
,则每个控制器需要样式表的用例。基本上,您不希望在一个样式表中编译所有内容。这与默认情况相反。