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

Adr*_*nde 5 deployment capistrano ruby-on-rails nginx environment-variables

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

1 - 我的配置部署与DigitalOcean(Capistrano 3,Nginx和Puma)的本教程相同,部署成功,我的网页出错:

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

在日志中:

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

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

export SECRET_KEY_BASE=XXXXXX
Run Code Online (Sandbox Code Playgroud)

文件 /config/secrets.yml是默认的

production:
  secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
Run Code Online (Sandbox Code Playgroud)

有了这个env变量,我检查了比这工作(echo $SECRET_KEY_BASEprintenv | grep SECRET_KEY_BASE)

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

是否本教程不使用此解决方案的工作?

Sul*_*aig 0

这是使用dotenv-rails gem处理 Rails 的 capistrano env 的正确方法。在 Rails、Heroku、Capistrano 中使用环境变量中解释了使用 capistrano 和 env Rails 的方法