我正在尝试在生产环境部署我的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 assets:precompile。但我仍然不断收到这个错误。有什么想法吗?
更新:我尝试更新提供的错误消息以提供稍微更好的信息...但是消息没有更新。然后我尝试直接将密钥添加到yml文件中而不是使用环境变量,仍然不起作用。我在hostmonster上运行,所以无法重启服务器...但是有些东西告诉我这就是需要做的...
更新2:经过一夜的睡眠,似乎这个问题已经不再是问题了。它一定是某种缓存。现在我的问题是它正试图使用我几天前更改的旧配置文件作为我的数据库。如果我弄清如何使缓存无效,我会在这里发布并将其标记为答案。如果有人知道如何做到这一点,请告诉我,我会将其标记为答案。我正在使用HostMonster作为我的托管,并按照他们在网站上为托管我的rails应用程序提供的步骤进行操作。
touch tmp/restart.txt
即可。我这样做后,它就能获取到我的新信息了。谢谢! - Bill Garrison