2014-09-24 42 views
1

我無法爲在Heroku上運行的Ruby on Rails 4.1.4應用程序中的生產環境設置secret_key_base無法在Heroku上運行的Ruby on Rails 4.1.4應用程序中爲生產環境設置secret_key_base

下面是我試圖做的步驟:

  • 運行rake secret和密鑰複製到剪貼板

  • 運行heroku config:set SECRET_KEY_BASE=%SECRET_KEY%

它返回成功Heroku在站點的儀表板上列出了這個環境變量,但是應用程序仍然認爲沒有提供密鑰:

缺少secret_key_base爲 '生產' 的環境中,設置這個值 在config/secrets.yml

爲什麼?我究竟做錯了什麼?我該如何解決它?

在此先感謝。

回答

1

config/secrets.yml添加到版本控制並再次部署。您可能需要從.gitignore中刪除一行,以便您可以提交該文件。

.gitignore Github上爲我的Rails應用程序中創建包含config/secrets.yml


OR

按照此步驟:

  1. $ heroku config(在你的終端運行此命令)
  2. 從複製值
  3. 糊值secrets.yml文件代替<%= ENV["SECRET_KEY_BASE"] %>(無任何引號)

例如

production: 
    secret_key_base: b1de60dd9e00816d0569c5ce3f8dbaa3c8ea4a7606120dc66cXXXXXXXXXXXXXXXXXXXXXX 
  • 重新部署
  • 注意:其實這是不安全的b如果您只是想在生產模式下臨時運行您的應用程序進行測試或處於緊急狀態

    我希望它適合您...

    +0

    是的,它的工作原理。非常感謝!但爲什麼「config/secrets.yml」文件默認包含在.gitignore中?關於你的第二個版本 - 我讀到,保留生產環境的密鑰基礎是不安全的。你爲什麼推薦它? – FrozenHeart 2014-09-24 09:35:03

    +0

    @FrozenHeart:我遇到了和你一樣的問題,我只是想在生產環境中運行該應用程序,所以我嘗試了這一點,並開始工作。但在此之後,我開始瞭解第一個選項並進行了修改......我很高興知道我可以以某種方式幫助您。默認情況下,它會放入gitignore以避免未跟蹤文件 – 2014-09-24 10:00:39

    +0

    我的意思是爲什麼他們決定放置它。 gitignore文件? – FrozenHeart 2014-09-24 10:34:23

    0

    什麼在你的config/secrets.yml?對於生產,它應包含以下行:

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

    是的,但它也有「<%=" and "%>」圍繞ENV – FrozenHeart 2014-09-24 08:25:07

    +0

    您是對的。答案已更新。它解決了你的問題嗎? – zwippie 2014-09-24 08:33:54

    +0

    不,因爲這些行已經在這裏 – FrozenHeart 2014-09-24 08:34:32

    相關問題