【发布时间】:2015-07-28 16:06:37
【问题描述】:
我正在尝试使用 Rails 资产管道来处理 less.erb 文件。
在使用 LESS 之前,我使用的是 SCSS。使用 SCSS,我可以拥有 SCSS.ERB 文件。一切都很完美。
不幸的是,我想使用的 UI 框架 (Semantic-UI) 不支持 SCSS,只支持 LESS。
所以我改变了:
添加了这些宝石:
gem 'less-rails', '~> 2.7.0'
gem 'therubyracer', '~> 0.12.2'
gem 'less-rails-semantic_ui', '~> 2.0.7'
然后我将 _colors.less.erb 文件添加到我的资产管道(在 assets/stylesheets/core/_colors.less.erb 中),内容如下:
@import "variables/_colors.less";
<% colors_list = %w(primary secondary gray green red blue yellow purple orange brown violet pink olive teal) %>
/*--------------------
Background Colors
---------------------*/
<% colors_list.each do |color| %>
.bg-color-<%=color%> { background-color: @color-<%=color%>; }
.bg-color-<%=color%>-darker { background-color: @color-<%=color%>-darker; }
.bg-color-<%=color%>-dark { background-color: @color-<%=color%>-dark; }
.bg-color-<%=color%>-light { background-color: @color-<%=color%>-light; }
.bg-color-<%=color%>-lighter { background-color: @color-<%=color%>-lighter; }
<% end %>
.bg-color-black { background-color: @color-black; }
.bg-color-white { background-color: @color-white; }
.bg-color-gray-darkest { background-color: @color-gray-darkest; }
.bg-color-gray-lightest { background-color: @color-gray-lightest; }
这里的问题是,与 scss.erb 文件不同,这些 less.erb 文件没有从 erb 预编译为 less。
返回错误:'core/_colors.less' was not found
有人知道为什么会这样吗?
【问题讨论】:
-
在最新版本的 Rails 上,
app/assets/stylesheets/test.less.erb文件像预期的那样通过 ERB 运行并放入已编译的 application.css 中,没问题。你在哪个版本的 Rails 上?它使用的是什么版本的 Sprockets? -
我使用的是 Rails 4.2.3、sprockets (3.2.0) 和 sprockets-rails (2.3.2)。
标签: ruby-on-rails less asset-pipeline erb