在资产预编译期间不解释引导程序> ie_hex_str



我遇到了一个很奇怪的问题:

我正在与 :

  • 导轨 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

最新更新