Ich habe kürzlich eine App bereitgestellt und einen internen Serverfehler wegen fehlender Produktion secret_key_base bekommen. Nach Stunden des Testens, konnte ich dieses Problem mit zwei Methoden lösen:Fehlende Produktion secret_key_base in Schienen
Methode 1:
ich ein neues secret_key mit rake secret
und ersetzen sie durch <%= ENV["SECRET_KEY_BASE"] %>
in secrets.yml
erzeugt. Die App wurde erneut bereitgestellt und dieses Mal funktionierte es. Aber ich denke, dass diese Methode falsch ist.
Methode 2:
erzeugt ich eine neue secret_key mit rake secret
und hinzugefügt, um es zu environments/production.rb
wie config.secret_key_base = 'd1f4810e662acf46a33960e3aa5bd0************************
, ohne secrets.yml
zu Ändern (Standard ist production: <%= ENV["SECRET_KEY_BASE"] %>
). Die App wurde erneut bereitgestellt und es funktioniert einwandfrei.
Meine Fragen:
- Welche Methode ist die beste?
- Wenn die 2. Methode korrekt ist, warum Rails erzeugt nicht standardmäßig eine secret_key_base in production.rb?
- Gibt es eine andere Methode, das zu tun?
Diese rhc-Methode kann nur verwendet werden, wenn Sie auf openshift.redhat.com hosten? –
Sie können die entsprechende Methode für jeden Dienst in seinen Dokumenten finden. Zum Beispiel für Heroku können Sie diese Seite überprüfen: https://devcenter.heroku.com/articles/config-vars – user3631047
Schließlich endete ich damit, ein Geheimnis auf meinem VPS zu harken und es in meine secrets.yml-Datei zu stecken. –