ruby-on-rails – Rails 3.2.8,heroku:未初始化的常量Less :: E
发布时间:2020-12-17 02:03:43 所属栏目:百科 来源:网络整理
导读:我在heroku的延迟工作中看到这个错误,这对我来说没有意义: {uninitialized constant Less::Engine (in /app/app/assets/stylesheets/share_and_earn_recommendation_email.css.less)/app/vendor/bundle/ruby/1.9.1/gems/tilt-1.3.3/lib/tilt/css.rb:60:in `
我在heroku的延迟工作中看到这个错误,这对我来说没有意义:
{uninitialized constant Less::Engine (in /app/app/assets/stylesheets/share_and_earn_recommendation_email.css.less) /app/vendor/bundle/ruby/1.9.1/gems/tilt-1.3.3/lib/tilt/css.rb:60:in `prepare' ... 为什么没有意义?因为css.rb看起来像这样: def prepare if ::Less.const_defined? :Engine @engine = ::Less::Engine.new(data) # line 60 else ... 这意味着如果Less :: Engine未定义,则无法命中第60行.我错过了什么? 编辑 从heroku控制台更好的演示: irb(main):008:0> ::Less.const_defined? :Engine => true irb(main):009:0> ::Less::Engine NameError: uninitialized constant Less::Engine 编辑2 它变得更有趣: irb(main):011:0> ::Less.const_defined? :Engine,false => false 不同之处在于后者不会搜索祖先.但是没有祖先,所以它不应该有所作为: irb(main):012:0> ::Less.ancestors => [Less] 解决方法
如果您刚刚在3.2.x堆栈中升级了rails版本,您会发现较少版本在3.2.2等早期版本中“存在”,而在3.2.9等更高版本中不存在.
我还没有完全调查过这个问题,但是我注意到当我从3.2.2升级到3.2.9时,我遇到了一些“少”问题. 干杯 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |