Pav*_*vel 5 ruby capistrano ruby-on-rails puma capistrano3
我在我的服务器上做了这个:
deploy@ubuntu-512mb-ams2-01:~/applications/spa_backend/current$ bundle exec rake secret
4b921910**
deploy@ubuntu-512mb-ams2-01:~/applications/spa_backend/current$ export SECRET_KEY_BASE=4b921910**
deploy@ubuntu-512mb-ams2-01:~/applications/spa_backend/current$ irb
irb(main):001:0> ENV["SECRET_KEY_BASE"]
=> "4b921910**"
Run Code Online (Sandbox Code Playgroud)
当我尝试使用我的应用程序打开链接时,我看到了:
An unhandled lowlevel error occurred. The application logs may have details.
puma_error.log:
#<RuntimeError: Missing `secret_key_base` for 'production' environment, set this value in `config/secrets.yml`>
/home/deploy/applications/spa_backend/shared/bundle/ruby/2.3.0/gems/railties-5.0.0.1/lib/rails/application.rb:513:in `validate_secret_key_config!'
/home/deploy/applications/spa_backend/shared/bundle/ruby/2.3.0/gems/railties-5.0.0.1/lib/rails/application.rb:246:in `env_config'
Run Code Online (Sandbox Code Playgroud)
secrets.yml:
production:
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
Run Code Online (Sandbox Code Playgroud)
UPD.我改变了<%= ENV["secret_key_base"] %>- > <%= ENV["SECRET_KEY_BASE"] %>但它没有帮助
在您secrets.yml的环境中,您的环境变量键需要大写.呼叫ENV['secret_key_base']正在返回nil.
修改你的secrets.yml喜欢如下:
production:
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
Run Code Online (Sandbox Code Playgroud)
您必须首先产生“ secret_key_base”。
bundle exec rake secret
Run Code Online (Sandbox Code Playgroud)
上面的代码将产生必要的密钥。复制它,并用它替换<%= ENV [“ SECRET_KEY_BASE”]%>。
这是原始帖子: