调试Rails资产管道的最佳实践
我正在使用Rails 3应用程序, bootstrap-sass
和资产管道,我正在寻找有关如何调试资产管道问题的一些想法。
在开发中工作,并在运行时编译(即包括来自大量已编译的css文件),我的应用程序看起来正是我期望的。
但是,当我使用资产管道将资产编译成单个文件时,为了测试它在生产中的行为,我认为连接文件application.css
中的validation错误导致浏览器停止正确评估css,我是看到一些显示问题。
当我在开发中查看生成的css文件并通过css3validation器传递它时,我可以看到在使用vendored css文件时发生validation错误(在大多数情况下,这些是由于供应商特定的hacks,引发validation器) – 当我通过w3cvalidation器运行它时,我生成的文件正在通过validation,我在下面的sprockets文件中列出了通过/失败结果:
/* * sprocket file in application.css * *= require_self *= require vendor *= require bootstrap-include # FAILS 474 ERRORS - presumably down to css hacks *= require DT_bootstrap # FAILS TWO ERRORS - presumably down to css hacks again *= require navbar # PASSES *= require footer # PASSES *= require main # PASSES *= require home # PASSES *= require widget # PASSES *= require search # PASSES *= require devise # PASSES *= require doohickeys # PASSES *= require datepicker # FAILS - again yet more cross browser css hacks suspected */
当连接破坏应用程序的视觉效果时,您应该如何开始准备生产文件?
我在这里要求了解如何最好地调试这样的编译样式表 – 它听起来像是优雅之前已经解决过的东西,但我在处理像这样的问题时并不知道可靠的方法。
例如,我可以看到一些规则没有通过使用Firefox和Webkit中的Web开发人员检查工具进行评估,但我不清楚如何超越这一点,而不是在编译的CSS上进行一些费力的二进制搜索。
当然有一些更专业的工具可用于这样的情况,比如能够只编译application.css
一些文件,并分别链接到预编译的bootstrap-sass
文件,或类似的东西?
如果你使用像bootstrap-sass这样的东西,你不应该使用Sprocket指令,你应该使用@import
。
将您的清单文件从application.css
重命名为application.css.scss
,然后将@import
重命名,例如:
@import "frameworks"; @import "bootstrap-responsive";