我遇到了一个非常奇怪的问题:
我正在使用:
以前的bootstrap-sass 1.4.0中的一个已知问题是与IE渐变显示相关的here。 通过引入(根据我的理解)ie_hex_str函数和IE的特定过滤器,在1.4.3中修复了这一点:
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie_hex_str($startColor)}', endColorstr='#{ie_hex_str($endColor)}', GradientType=0);
有些详情here。
我仍然遇到问题,我的问题是在资产预编译后我得到了类似的内容:
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='ie_hex_str(#FFFFFE)', endColorstr='ie_hex_str(#E6E6E6)', GradientType=0);
这就是编译资产时没有解释ie_hex_str。 我没有触及任何bootstrap-sass代码,所以我不明白发生了什么......
有什么想法吗?
更新:
“有趣”的是,我有2个应用程序使用相同版本的rails和bootstrap-sass并且做了几乎相同的事情并且它们没有以相同的方式做出反应。例如,正确解释了ie_hex_str。
答案 0 :(得分:0)
我无法知道发生了什么。似乎在资源预编译期间没有解释bootstrap-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);
}
}
使用我需要的颜色。 至少它运作良好。
答案 1 :(得分:0)
问题似乎是由application.rb中的资产管道 initialize_on_precompile 设置引起的(Rails 3.1):
config.assets.initialize_on_precompile = false
在application.rb中包含此行时,我们会出现“ie_hex_str”预编译问题。删除/评论解决了这个问题。