J P*_*ato 10 ruby-on-rails engineyard ruby-on-rails-4
Rails 4.2中是否需要使用secret_key_base和secret_token?设置都不会导致以下异常消息:
缺失
secret_token和secret_key_base对"生产"的环境中,在设置这些值config/secrets.yml
4.2升级指南(http://railsapps.github.io/updating-rails.html)说明了这一点:
使用rails new命令创建新的Rails应用程序时,会生成一个唯一的密钥并将其写入config/initializers/secret_token.rb文件.
但是当我生成我的应用程序时没有创建这样的文件,并且config/secrets.yml中没有对secret_token的引用
我假设错误消息是错误的,并且只需要secret_key_base.当我在我的开发机器上运行我的应用程序时,它只从secret_key_base开始,但在Engineyard中,设置secret_key_base(通过环境变量)不起作用.我仍然得到错误.
小智 5
您在Engine Yard上看到的问题是因为默认情况下(还)存在secret_key_base环境变量.这是我们正在努力的事情.您可以使用自定义厨师自行安装; 我建议与我们的支持团队讨论更多信息.
至于你得到的实际错误,我刚刚测试了一个全新的Rails 4.2应用程序("rails new foo"),看看它是否正在生成secret_token.rb,但事实并非如此.我认为你需要的是创建config/secrets.yml,该文件应如下所示:
development:
secret_key_base: somekey
test:
secret_key_base: someotherkey
# Do not keep production secrets in the repository,
# instead read values from the environment.
production:
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
Run Code Online (Sandbox Code Playgroud)
现在,当你看到ENV ["SECRET_KEY_BASE"]时,这就是Engine Yard有点扭曲的地方 - 我们还没有开箱即用.只要你的repo是私有的,你就可以自己硬编码.否则,使用自定义厨师可以通过创建一个秘密密钥库并将其放入负责启动应用程序工作进程的包装器脚本(例如,在我们的平台上配置config/env.custom)来使您平仓.
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
12489 次 |
| 最近记录: |