ruby-on-rails – rails secret_key_base在生产中无法识别

所以我正在尝试在生产中部署我的rails应用程序.当我进入页面时,我收到500错误.当我转到我的错误日志时,我收到以下错误
Exception RuntimeError in Rack application object (Missing `secret_key_base` for 'production' environment,set this value in `config/secrets.yml`)

我正在运行Rails 4.1,我的config / secrets.yml看起来像这样:

development:
      secret_key_base: <development key>        
    test:
      secret_key_base: <test key>

    # Do not keep production secrets in the repository,# instead read values from the environment.
    production:
      secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>

我运行rake secret获取密钥并将导出放入我的bash_profile并获取它.我运行了rake资产:预编译成功.但我仍然一直在犯这个错误.有任何想法吗?

更新:我试图更新提供的错误消息,以提供更好的信息….并且消息没有更新.然后,我尝试将密钥直接添加到yml文件,而不是使用环境变量,仍然没有骰子.我在hostmonster上运行,所以我无法重新启动服务器…..但有些东西告诉我需要做什么…

更新2:彻夜难眠后,似乎这个问题不再是问题.它一定是某种缓存.现在我的问题是它试图使用我几天前为我的数据库更改的旧配置.如果我弄清楚如何使缓存无效,我将在此处发布并将其标记为答案.如果其他人知道该怎么做,请告诉我,我会将其标记为答案.我使用HostMonster作为我的托管,并按照他们在他们的网站上的步骤来托管我的rails应用程序.

解决方法

>您需要重新启动服务器,因为在YourAppName :: Application.initialize之后!在config / environment.rb中调用,您无法更改您的设置.
>检查你的yml标记,可能有一些错误
>你的config / initializers / secret_token.rb可能有问题

问题不在于ENV伪哈希.如果在ENV中没有这样的密钥,secret_key_base将为nil.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...