【发布时间】:2015-08-21 19:29:52
【问题描述】:
我整晚都在尝试部署到 Heroku,但我一直收到同样的错误:
remote: -----> 为 Rails 资产准备应用程序>pipeline
远程:运行:耙资产:预编译
远程:rake 中止!
远程:未设置 Devise.secret_key。请将以下内容添加到您的设计初始化程序中:
远程:config.secret_key = '秘密令牌字符串'
remote:请确保您在安装 Devise 或设置密钥后重新启动了您的应用程序。
...
远程:!预编译资产失败。
远程:!
远程:
偏僻的: !推送被拒绝,无法编译 Ruby 应用程序
远程:
远程:验证部署...
远程:
偏僻的: !推送被拒绝病毒阻断。
远程:
致https://git.heroku.com/viral-blocitoff.git
! [remote denied] master -> master (pre-receive hook denied)
错误:未能将一些引用推送到“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 在另一个应用程序上工作,而没有完成这些任务。有什么我遗漏的吗?
【问题讨论】:
-
您必须在
.gitignore中添加了application.yml,因此,请确保您已通过settings内的GUI 手动设置环境变量或使用Figaro,并且您在YAML 中没有对齐问题 -
该应用程序在 Rails 服务器上运行时可以在开发中工作——完全没有挂起,包括身份验证、电子邮件或其他东西。
-
@CbaBhusal 我确实使用 figaro 来设置我的环境变量,并且我用命令“heroku config”确认了这些变量显示了与我在 application.yml 中相同的固定值。我正在尝试考虑可能存在什么样的对齐问题?
-
@CbaBhusal 是的,我在 .gitignore 中有 application.yml。但是我将 secrets.yml 推送到我在 github 上的遥控器,但它没有实际值。
标签: ruby-on-rails heroku devise