我有一个 Rails 应用程序,我想在云和本地的生产环境中运行它。这是为了使其可以离线工作。 为此,我将本地数据库与云上的数据库同步。然后它们是相同的。
然后我当然会在本地计算机和云端安装该应用程序。
到目前为止,我已经开发了用于开发的计算机和用于生产的 heroku,一切正常。
在生产计算机上,我安装了 rubystack 并在其上运行了该应用程序,只要我在进行开发,它就可以正常工作。
但是如果我切换到生产环境,它就找不到 key 。虽然我有我的 secret 文件:
production
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
无论如何它都可以在生产环境中的 heroku 上运行。
步骤回顾:
使用 ubuntu 操作系统在我的计算机上创建我的应用程序
在 heroku 上设置它,它工作正常
在装有 Windows 操作系统的生产计算机上安装了 rubystack,复制了应用程序和数据库并运行了迁移。
如果在生产计算机上,我在控制台上检查生产 SECRET_KEY_BASE,它返回 nil。
但在 heroku 上它工作正常。
我错过了什么?会不会是我的ubuntu电脑和Ruby Stack的ruby配置不同导致的?
最佳答案
转到 https://dashboard.heroku.com/apps/YOUR_APP_NAME/settings ,点击Reveal Config Vars
并复制SECRET_KEY_BASE
后面的值。
然后使用 SECRET_KEY_BASE=COPIED_VALUE rails s -e production
启动您的本地服务器。
或者您可以将 export SECRET_KEY_BASE=COPIED_VALUE
放入您的 .bashrc
(取决于您使用的 shell)文件中。
关于ruby-on-rails - Rails SECRET_KEY_BASE 在本地生产环境中返回 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40629753/