Recentemente ho estratto uno dei miei repository da Git. Dopo aver avviato il server, sto ricevendo quanto segue: Miss_secondo e secret_key_base. Questo potrebbe accadere perché ho incluso secrets.yml nel mio .gitignore.Manca `secret_token` e` secret_key_base` - Rails 4.2.0 con RVM
Il mio attuale configurazione
- Ubuntu 14.04
- rubino 2.2.0p0
- rotaie 4.2.0
- rvm 1.26.11
- server locale (non remota) ambiente
- sviluppo
Molte risorse online dichiarano che devo generare una nuova chiave usando rake secret
e aggiungerla al secrets.yml. Posizionare la chiave all'interno di secrets.yml e riavviare il server di rotaie non funziona.
Modificato: contenuti aggiunti di secrets.yml di seguito. -04/30/15 09:04 EST
development:
secret_key_base: LONG KEY HERE
test:
secret_key_base: LONG KEY HERE
# Do not keep production secrets in the repository,
# instead read values from the environment.
production:
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
Sappiate questo è impostato come un ambiente di sviluppo su un server locale nel mio luogo di residenza (non Heroku).
altre risorse statali ho bisogno di aggiungere una voce dentro la mia secret_token.rb
, ma questo file non esiste nel mio progetto.
L'unico modo la mia applicazione verrà eseguita è se dovessi creare un file secret_token.rb
e aggiungere uno di seguenti all'interno di esso:
MyApp::Application.config.secret_token = if Rails.env.development? or Rails.env.test?
('x' * 30) # meets minimum requirement of 30 chars long
else
ENV['SECRET_TOKEN-']
end
o
MyApp::Application.config.secret_token = 'the secret key'
Perché questo file richiesto quando i documenti di Rails dichiarano di rimuoverlo?
Il secret_token.rb non è richiesto, al fine di eseguire per i nuovi progetti generati, solo quelli dal mio Git pronti contro termine.
Si prega di avvisare sul motivo per cui la mia applicazione ha bisogno di secret_token.rb anche se lo stato dei documenti Rails è diverso altrimenti la mia applicazione non funzionerà senza di essa.
Modificato: -04/30/15 09:27 EST
Un altro strano comportamento è che posso cambiare titolo secrets.yml
mentre il secret_token.rb
rimane al suo posto e l'applicazione continua a funzionare.
Ho tentato di rinominare lo secret_token.rb
, aggiunto <%= ENV["SECRET_KEY_BASE"] %>
allo sviluppo e sto ancora riscontrando il problema di secret_token mancante.
Modificato: Aggiunto repo git di seguito. -05/08/15 02:50 EST
repo git: https://github.com/captain-awesome/blog_mac
Qualcosa di strano è che se dovessi modificare uno qualsiasi dei 32 caratteri, salvare il secret_token.rb, riavviare il server ... la mia app funzionerà. La stringa di 32 caratteri nel file secret_token.rb è qualcosa che posso truccare da solo? Se sì, qual è il vero scopo del rake segreto?
Quindi prima di tutto '('x' * 30)', no no no. Puoi generare un token segreto eseguendo 'rake secret' nella tua app, questo è il modo giusto per generare un token segreto. Ma questo non risponde alla maggior parte della tua domanda, quindi lascerò semplicemente un commento qui. Potresti anche voler cercare lo scopo del token segreto, in modo da capire cosa sta succedendo. – jrochkind