【发布时间】:2015-04-02 23:53:50
【问题描述】:
我似乎无法解决为什么没有编译 less 循环函数。我已经验证代码在winless.org 和lesstester 上都有效。这是下面的代码(我已经缩短了):
@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
less包2.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