我已经整夜尝试部署到Heroku,但我仍然遇到同样的错误:
遥控器:----->为Rails资产准备app>管道
remote:运行:rake assets:预编译
遥控器:耙子中止了!
remote:未设置Devise.secret_key。请将以下内容添加到您的Devise初始化程序中:
remote:config.secret_key ='秘密令牌字符串'
remote:请确保在安装Devise或设置密钥后重新启动应用程序。
...
遥控器:!预编译资产失败 遥控器:!
遥控器:
远程:!推送拒绝,无法编译Ruby应用程序
遥控器:
remote:验证部署...
遥控器:
远程:!推动拒绝病毒 - blocitoff 遥控器:
致https://git.heroku.com/viral-blocitoff.git
! [远程拒绝]主人 - >主人(预先接收挂钩拒绝)
错误:无法将某些引用推送到“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而没有完成这些任务。有什么我想念的吗?
答案 0 :(得分:0)
让它部署。我取消了我的heroku env变量,然后重置它们。我还使用了一个令牌(通过ENV变量)用于开发和生产secret_key_base推送远程主机到Heroku,它编译并启动。然后将数据库迁移到Heroku。一切都很好。
答案 1 :(得分: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处列出了与管理 secrets.yml 相关的详细问题。
希望这有帮助 - 谢谢!