我遇到了一个很奇怪的问题:
我正在与 :
- 导轨 3.1.1
- Bootstrap-sass 1.4.4(还没有时间升级到 2.0)
以前的引导 sass 1.4.0 中的一个已知问题是此处描述的与 IE 渐变显示相关的问题。这在 1.4.3 中通过引入(据我所知)IE 的功能和特定过滤器ie_hex_str修复,例如:
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie_hex_str($startColor)}', endColorstr='#{ie_hex_str($endColor)}', GradientType=0);
这里给出了一些细节。
我仍然有问题,我的问题是在资产预编译后,我得到类似的东西:
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='ie_hex_str(#FFFFFE)', endColorstr='ie_hex_str(#E6E6E6)', GradientType=0);
也就是说,在编译资产时没有解释ie_hex_str。我没有碰任何引导代码,所以我不明白发生了什么......
知道吗?
更新:
"有趣"的是,我有 2 个应用程序使用相同的 rails 和 bootstrap-sass 版本,并且做几乎相同的事情,而且它们的反应方式不同。首先,ie_hex_str被正确解释。
我找不到发生了什么。似乎在资产预编译期间,引导程序 sass 的 sass mixins 中的函数没有得到解释。
由于我不知道为什么,我使用了一种解决方法:我覆盖了我正在使用的定义,例如 btn :
.btn {
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#FFFFFFFE, endColorstr=#FFE6E6E6, GradientType=0);
.primary {
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#FF049CDB, endColorstr=#FF0064CD, GradientType=0);
}
}
使用我需要的颜色。至少效果很好。
该问题似乎是由 application.rb (Rails 3.1) 中的资产管道initialize_on_precompile设置引起的:
config.assets.initialize_on_precompile = false
在 application.rb 中包含此行时,我们出现了"ie_hex_str"预编译问题。删除/注释解决了问题。
- 导轨 3.1.3
- 引导 1.4.4