预编译时的 Rails 生产 bootstrap-sass 错误

Posted

技术标签:

【中文标题】预编译时的 Rails 生产 bootstrap-sass 错误【英文标题】:Rails production bootstrap-sass error on precompile 【发布时间】:2015-05-01 20:36:47 【问题描述】:

在开发环境中,我的 rails 应用程序一切正常。但是当我在生产模式下尝试它时,当我进行一些预编译时会出现这个错误:

RAILS_ENV=production rake assets:precompile --trace
** Invoke assets:precompile (first_time)
** Invoke assets:environment (first_time)
** Execute assets:environment
** Invoke environment (first_time)
** Execute environment
rake aborted!
NoMethodError: undefined method `<<' for true:TrueClass
/home/xxxxx/.rvm/gems/ruby-2.1.5/gems/bootstrap-sass-3.3.4.1/lib/bootstrap-sass/engine.rb:8:in `block in <class:Engine>'
/home/xxxxx/.rvm/gems/ruby-2.1.5/gems/railties-4.1.6/lib/rails/initializable.rb:30:in `instance_exec'
/home/xxxxx/.rvm/gems/ruby-2.1.5/gems/railties-4.1.6/lib/rails/initializable.rb:30:in `run'
/home/xxxxx/.rvm/gems/ruby-2.1.5/gems/railties-4.1.6/lib/rails/initializable.rb:55:in `block in run_initializers'

我已经尝试了多种解决方案,但到目前为止都没有。

我尝试将config.assets.initialize_on_precompile = false 添加到config/application.rb 中,但没有成功...

【问题讨论】:

您是否在生产模式下运行了捆绑安装? RAILS_ENV=production bundle install。也许所需的 gem 不在您的生产组中,但在您的开发组中。 @Alexander 是的,我刚刚做了,但没有任何改变:/ 失败的行尝试添加到config.assets.precompile 数组,但它不是true 的数组。您的应用中是否有可能有 config.assets.precompile = true 感谢@infused 我在我的代码中有它... 【参考方案1】:

正如@infused 所指出的,我的代码中有一个config.assets.precompile = true 导致了这个错误。删除它解决了这个问题!

【讨论】:

以上是关于预编译时的 Rails 生产 bootstrap-sass 错误的主要内容,如果未能解决你的问题,请参考以下文章

Rails 3.1 资产管道 - 为啥我的图像没有为生产进行预编译?

Rails 生产预编译上的 Sass::SyntaxError

Rails 4 - 在生产服务器上预编译资产后没有 manifest.json

RAILS_ENV=生产轨道资产:预编译不适用于 RSpec

Rails 4 - 生产资产:预编译导致 ActiveRecord::NoDatabaseError: FATAL: database does not exist

rails4 rake assets 在生产环境中预编译生成错误的javascript文件