所以我正在尝试在生产中部署我的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可能有问题
>检查你的yml标记,可能有一些错误
>你的config / initializers / secret_token.rb可能有问题
问题不在于ENV伪哈希.如果在ENV中没有这样的密钥,secret_key_base将为nil.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。