缺少`secret_token`和`secret_key_base`用于'生产'环境

时间:2015-10-14 05:33:59

标签: ruby-on-rails nginx deployment environment-variables capistrano

我看到了这个解决方案的所有答案,但没有为我工作。

1 - 我的配置部署等于tutorial by DigitalOcean(Capistrano 3 ,Nginx和Puma),部署成功,我的网络出错:

  

发生了未处理的低级错误。应用程序日志可能包含详细信息。

在日志中:

  

机架应用程序错误:#< RuntimeError:缺少secret_tokensecret_key_base生产'环境,请在config/secrets.yml>

中设置这些值

2 - 在我的Droplet或VPN中,我使用文件rake secret中的密钥(./bashrc)创建了变量

export SECRET_KEY_BASE=XXXXXX

文件/config/secrets.yml是默认

production:
  secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>

使用此env变量,我检查了比这更有效(echo $SECRET_KEY_BASEprintenv | grep SECRET_KEY_BASE

3 - 重新启动Puma和Nginx并且此错误未解决后,我不知道检查或调试此错误的最佳方法是什么。

this tutorial无法使用此解决方案吗?

1 个答案:

答案 0 :(得分:0)

这是使用dotenv-rails gem处理rails的capistrano env的正确方法。 在Using Environment Variables in Rails, Heroku, Capistrano

中解释了使用capistrano和env rails的方法