我通常会更新我的生产Ruby on Rails应用程序,今天我使用gem文件更新了一些安全漏洞,将它们推送到我的Github存储库中,然后执行git push heroku master
并收到以下错误:
remote: -----> Preparing app for Rails asset pipeline
remote: Running: rake assets:precompile
remote: rake aborted!
remote: Devise.secret_key was not set. Please add the following to your Devise initializer:
remote:
remote: config.secret_key = '<hash>'
remote:
remote: Please ensure you restarted your application after installing Devise or setting the key....
remote: !
remote: ! Precompiling assets failed.
remote: !
不确定最近更新的actionview -v 5.1.6.2
与此错误之间是否存在连接。
答案 0 :(得分:0)
打开config / initializers / devise.rb文件
它包含行
config.secret_key = 'xxxxxxxxxxxxxx'
如果发现此行已注释,请取消注释。如果它没有任何秘密密钥,请通过运行rake secret
找到您的秘密密钥。
放置secret_key的最佳位置是环境变量。因此,请尝试如下更改devise.rb文件中的行。
config.secret_key = Rails.application.credentials.secret_key_base
打开config / secrets.rb文件
production:
secret_key_base: ENV['DEVISE_SECRET_KEY']
在Heroku中,您可以在配置变量中设置DEVISE_SECRET_KEY。