【问题标题】:LESS loop function not compiling in Rails 4在 Rails 4 中未编译 LESS 循环函数
【发布时间】:2015-04-02 23:53:50
【问题描述】:

我似乎无法解决为什么没有编译 less 循环函数。我已经验证代码在winless.orglesstester 上都有效。这是下面的代码(我已经缩短了):

@action-color:  #00ffff;  //aqua
@adventure-color: #000000;  //black
@animation-color: #0000ff;  //blue 

.genre-names(
  ~"action",
  ~"adventure",
  ~"animation";
);
.genre-names(@list, @index: 1) when (isstring(extract(@list, @index))) {
    @genre: extract(@list, @index);

    .@{genre} {
      background-color: ~'@{@{genre}-color}';
    }
    .genre-names(@list, (@index + 1));
}

编译后的输出应如下所示:

.action {
  background-color: #00ffff;
}
.adventure {
  background-color: #000000;
}
.animation {
  background-color: #0000ff;
}

它位于colors.css.less,它位于assets/stylesheets 目录中。我已经将代码移到了不同​​的工作表中,但它仍然不起作用。

我正在使用rails-less-bootstrap gem,否则它可以正常工作。作为此 gem 安装的依赖者,我还拥有以下 gem:

less (2.3.3)
less-rails (2.3.3)
less-rails-bootstrap (3.0.2)
libv8 (3.16.14.7 x86_64-darwin-14)
sprockets (2.12.3)
sprockets-rails (2.2.4)
therubyracer (0.12.1)

我已尝试清除缓存和 sprocket 文件并进行预编译。编译的代码只是没有显示出来。请帮忙!

【问题讨论】:

  • 我不确定,但是 ruby​​ less2.3.3。似乎包括相当过时的Less 1.3.3 版本,它不支持这个sn-p 中的一些东西。 extract 函数特别是(即isstring(extract(@list, @index)) 总是false 那里)。
  • (以防万一您可以在less2css.org 尝试Less 1.3.3 的能力(尽管此资源并不总是可以访问)。
  • @seven-phases-max 就是这样!我试过了,我认为你是对的。太感谢了。随时将您的评论放在答案中,以便我接受。
  • 那么更新包到更新版本解决了问题吗? (如果我没记错的话,您还需要更新less-rails-bootstrap,因为bootstrap 3.0.2 也与Less 1.3.3 相关联(并且在较新的版本中可能会失败)。
  • 我明白了。好吧,因为那里的循环不是很必要(因为无论如何你都手动重复所有这些标识符) - following code 可以与 1.3.3 一起使用。

标签: ruby-on-rails less


【解决方案1】:

代表@seven-phases-max 发布此问题,他在我原来的帖子中回答了这个问题。这是因为我使用的 less-rails-bootstrap gem 使用的是旧版本的 Less (1.3.3)。

【讨论】:

    猜你喜欢
    • 2014-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-24
    • 1970-01-01
    • 2014-06-12
    • 2013-04-03
    • 1970-01-01
    相关资源
    最近更新 更多