我看到了这个解决方案的所有答案,但对我没有用。
1 - 我的配置部署等于这个 tutorial by DigitalOcean (Capistrano 3 、Nginx 和 Puma),部署成功后,我的网络出现错误:
An unhandled lowlevel error occurred. The application logs may have details.
在日志中:
Rack app error: #< RuntimeError: Missing
secret_token
andsecret_key_base
for 'production' environment, set these values inconfig/secrets.yml
>
2 - 在我的 Droplet 或 VPN 中,我在文件
rake secret
中创建了一个带有 key ( ./bashrc
)的变量export SECRET_KEY_BASE=XXXXXX
文件
/config/secrets.yml
是默认的production:
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
使用这个环境变量,我检查了它是否有效(
echo $SECRET_KEY_BASE
或 printenv | grep SECRET_KEY_BASE
)3 - 重新启动 Puma 和 Nginx 并且此错误未解决后,我不知道检查或调试此错误的最佳方法是什么。
是否this tutorial不适用于此解决方案?
最佳答案
这是使用 dotenv-rails gem 处理 Rails 的 capistrano env 的正确方法.
在 Using Environment Variables in Rails, Heroku, Capistrano 中解释了使用 capistrano 和 env rails 的方法
关于ruby-on-rails - `secret_token` 环境缺少 `secret_key_base` 和 'production',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33117318/