ruby-on-rails - `secret_token` 环境缺少 `secret_key_base` 和 'production'

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

我看到了这个解决方案的所有答案,但对我没有用。

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 and secret_key_base for 'production' environment, set these values in config/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_BASEprintenv | 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/

相关文章:

reactjs - 我无法在 Azure Linux 环境中仅部署 ReactJS 应用程序的构建文件夹

ruby-on-rails - RAILS 用户层次结构;类(class)、社团。多态?

ruby-on-rails - JSON 哈希值的 bool 属性方法 - Rails 4.2、Postgres JSONB

javascript - 传递变量以在 Devise 中查看

ssl - 将 ssl 证书转发到代理服务器

ruby-on-rails - 当使用带有ELB的EC2容器服务对Rails应用进行泊坞管理时,我仍需要nginx吗?

python - 动态服务 django docker 容器

.net - 使用 .NET 应用程序部署 SQLite 时的 list

ruby-on-rails - Rails-后台作业中的ActionDispatch::Http::UploadedFile

ios - 如何将我的iOS应用分发到多个国家/地区?