我正在使用Rails 3应用程序bootstrap-sass
和资产管道,我正在寻找有关如何调试资产管道问题的一些想法。
在开发中工作,并在运行时进行编译(即包括大量已编译的css文件),我的应用程序看起来完全符合我的期望。
然而,当我使用资产管道将资产编译成单个文件时,为了测试它在生产中的行为,我认为连接文件application.css
中的验证错误导致浏览器停止正确评估css ,我看到了许多显示问题。
当我查看开发中生成的css文件,并通过css3验证器传递它们时,我可以看到使用vendored css文件时出现验证错误(在大多数情况下,这些都是由于供应商特定的黑客攻击,引发验证器) - 当我通过w3c验证器运行它时,我生成的文件正在通过验证,并且我已在下面的链轮文件中列出了通过/失败结果:
/*
* 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
文件,或类似的东西?< / p>
答案 0 :(得分:3)
如果你使用像bootstrap-sass这样的东西,你不应该使用Sprocket指令,你应该使用@import
。
将您的清单文件从application.css
重命名为application.css.scss
,然后将@import
重命名,例如:
@import "frameworks";
@import "bootstrap-responsive";