为什么require_tree在require_self之前是默认的application.css?

时间:2015-01-09 18:02:36

标签: ruby-on-rails asset-pipeline

我注意到在生成新的Rails 4.2应用程序后, application.css 中的需求顺序已更改。

 *= require_tree .
 *= require_self

这不应该是另一种方式吗?即使在Guides中也不是这样......

2 个答案:

答案 0 :(得分:4)

进行更改是为了允许application.css中定义的样式覆盖以前包含的样式。

请参阅更改require说明顺序的Rails issue #11639this commit

答案 1 :(得分:1)

如官方文档here中所述,并在此SO回答here中进行了解释:

  

这会将包含在文件中的CSS(如果有)放在require_self调用的精确位置。

这与我在评论中写的略有不同,因为如上面的引用所示,清单中的JS或CSS将插入require_self的位置。如果您的后续资产依赖于您在清单中写下的内容,这就变得非常重要。

当然,如果您正在这样做,那么将“内联”资产放在单独的文件中可能会更好,只是为了保持清单清洁。