调试Rails资产管道的最佳实践

时间:2012-04-11 11:19:14

标签: ruby-on-rails ruby-on-rails-3 asset-pipeline sass

我正在使用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>

1 个答案:

答案 0 :(得分:3)

如果你使用像bootstrap-sass这样的东西,你不应该使用Sprocket指令,你应该使用@import

将您的清单文件从application.css重命名为application.css.scss,然后将@import重命名,例如:

@import "frameworks";
@import "bootstrap-responsive";