为什么我的预编译资产失败?

时间:2019-03-14 07:33:12

标签: ruby-on-rails

我通常会更新我的生产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与此错误之间是否存在连接。

1 个答案:

答案 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。