如果 less 都在一个文件中,则按照说明一切正常,但是,使用 @import 它会丢失对变量的所有引用。
我将 .less 文件放在 /vendor/frameworks/ 下
将以下内容添加到 application.rb
config.less.paths << "#{Rails.root}/vendor/frameworks"
config.less.compress = true
在 /app/assets/stylesheets/application.css
...
main.css.less
...
main.css.less 的内容:
@import "variables";
@import "common";
variables.less 和 common.less 被放入供应商/框架中。
可以找到文件,这一切都很好。但是,当我在生产环境中预编译时,在 variables.less 中定义的变量无法在 common.less 中访问,这使得它毫无用处。我的框架中少了 25 个文件,我不想将它们全部放入一个文件中。
我在我的 gemfile 中添加了这些:
gem 'therubyracer'
gem 'therubyrhino'
gem 'less-rails'
上面描述的这个功能应该工作,还是意味着全部在一个文件中?我希望不是这样。谢谢,G
编辑:预编译时忘记添加错误消息:
RAILS_ENV=development rake assets:precompile
....
Less::ParseError: variable @base is undefined
(in /Users/[myuser]/Development/RoR/myapp/vendor/assets/frameworks/common.less)
at /Users/[myuser]/.rvm/gems/ruby-2.0.0-p247/gems/less-2.5.0/lib/less/js/lib/less/parser.js:604:31