2016-11-16 70 views
2

我有一個Rails應用程序,我想在雲端和本地生產環境中運行。這是爲了使它能夠離線工作。 爲此,我將本地數據庫與雲上的數據庫同步。哪些是相同的。Rails SECRET_KEY_BASE在本地生產環境下返回零無效

那麼當然我將安裝在本地計算機和雲上的應用程序。

到目前爲止,我已經開發了我的電腦的發展和在Heroku生產和一切工作正常。

在我安裝rubystack並運行其上的應用生產電腦只要我在開發它工作正常。

但是如果我切換到生產它找不到密鑰。雖然我有我的祕密文件:

production 
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %> 

而且無論如何它在heroku上的作品。

的步驟的概括:

  • 創建我的應用程序在我的電腦上使用Ubuntu操作系統

  • 將它設置在Heroku和它的作品的生產計算機上精細

  • 安裝rubystack與Windows操作系統,複製應用程序和數據庫,並運行遷移。

如果在生產計算機上,我在控制檯上檢查SECRET_KEY_BASE,它返回nil。

但是在heroku上它工作正常。

我缺少什麼?它可能是由我的Ubuntu電腦和Ruby Stack的不同ruby配置引起的?

回答

0

轉到https://dashboard.heroku.com/apps/YOUR_APP_NAME/settings,點擊Reveal Config Vars,然後compy後面的值SECRET_KEY_BASE

然後用SECRET_KEY_BASE=COPIED_VALUE rails s -e production啓動本地服務器。

或者你可以把export SECRET_KEY_BASE=COPIED_VALUE.bashrc(取決於你所使用的shell)文件。

+0

如果我按照你的建議啓動服務器,我會得到:'SECRET_KEY_BASE'不被識別爲內部或外部命令。我找不到.bashrc文件,所以我在主目錄上創建它,並添加了你的代碼,但是這並沒有解決它.. – Catmal

+0

我使用rbenv – Catmal

+0

好吧,因爲我在Windows上我需要把SECRET ... 最後。但這並不起作用。我現在通過將它明確地設置在祕密文件上來工作。我知道這不是一個好的解決方案,但它是我唯一能夠工作的人。 – Catmal

相關問題