首页 文章

由于Devise secret_key,Rails应用程序无法在Heroku上编译

提问于
浏览
0

我已经整夜尝试部署到Heroku,但我仍然遇到同样的错误:

remote:----->为Rails资产准备app>管道远程:运行:rake assets:预编译远程:rake aborted! remote:未设置Devise.secret_key . 请将以下内容添加到您的Devise初始化程序中:remote:config.secret_key ='secret token string'remote:请确保在安装Devise或设置密钥后重新启动应用程序 .

...

远程:!预编译资产失败 . 远程:!遥控器:遥控器:!推送被拒绝,无法编译Ruby应用程序远程:远程:验证部署...远程:远程:!推动拒绝病毒 - blocitoff . remote:要https://git.heroku.com/viral-blocitoff.git! [远程拒绝] master - > master(pre-receive hook拒绝)错误:无法将某些引用推送到“https://git.heroku.com/viral-blocitoff.git”

我还运行以下命令为heroku设置我的环境变量:

figaro heroku:set -e production

这将读取我的所有固定值,包括SENDGRID和DEVISE_SECRET_KEY

这是我的application.yml文件(减去固定值):

SENDGRID_PASSWORD: ********
    SENDGRID_USERNAME: @heroku.com

    production:
      SECRET_KEY_BASE: secret token
      DEVISE_SECRET_KEY: secret token

这是我在devise.rb文件中的内容:

config.secret_key = ENV['DEVISE_SECRET_KEY']

我在这个网站上查看了其他提议的解决方案,但是我在不到两个月前就在另一个应用程序上完成了Devise的工作而没有完成这些任务 . 有什么我想念的吗?

2 回答

  • 0

    得到它部署 . 我取消了我的heroku env变量,然后重置它们 . 我还使用了一个令牌(通过ENV变量)用于开发和 生产环境 secret_key_base推送远程主机到Heroku,它编译并启动 . 然后将数据库迁移到Heroku . 一切都很好 .

  • 0

    我的应用程序报告了相同的错误,但是,问题是由使用 Figaro gem和刚性systemAdmin的组合引起的 . 在实现 Figaro gem时,创建一个secrets.yml文件来分配身份验证令牌,然后将其妥善存储在.gitignore中,尝试部署到heroku时会发生冲突,因为.gitignore会阻止推送部署所需的secrets.yml文件凭据 .

    具体来说,我使用以下gem和过程来解决冲突 .

    • gem 'heroku_secrets', github: 'alexpeattie/heroku_secrets'

    • bundle install

    • git push heroku master --force

    上述解决方案在相关的StackOverflow帖子中进一步解释:How do you manage secret keys and heroku with Ruby on Rails 4.1.0beta1?

    此外,我在 Rails 4.1 中使用 Figaro 遇到了多个问题;我在以下Gist中详细说明了与秘密管理有关的问题 .

    希望这有帮助 - 谢谢!

相关问题