Недавно я вытащил один из моих репозиториев из Git. После запуска сервера я получаю следующее: Отсутствует secret_token и secret_key_base. Это может произойти, потому что я включил secrets.yml в свой .gitignore.Отсутствует `secret_token` и` secret_key_base` - Rails 4.2.0 с RVM
Моя текущая настройка
- Ubuntu 14,04
- рубин 2.2.0p0
- рельсы 4.2.0
- РВМ 1.26.11
- локальный сервер (не удаленная) среда
- развитие
Многие онлайн-ресурсы заявляют, что я должен генерировать новый ключ, используя rake secret
и добавлять его в секреты .yml. Размещение ключа внутри secrets.yml и перезапуск сервера rails не работает.
Отредактировано: Добавленное содержание secrets.yml ниже. -04/30/15 9: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"] %>
Пожалуйста, знайте, это установлено в качестве среды разработки на локальном сервере в моем месте жительства (не Heroku).
Другие ресурсы состояние мне нужно, чтобы добавить запись в моей secret_token.rb
, но этот файл не существует в моем проекте.
Единственный способ мое приложение будет работать, если я должен был создать secret_token.rb
файл и добавить либо один из следующих внутри него:
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
или
MyApp::Application.config.secret_token = 'the secret key'
Почему этот файл требуется, когда Rails docs заявляет, что удаляет его?
secret_token.rb не требуется для запуска новых проектов, сгенерированных, только те из моего Git репо.
Просьба сообщить, почему мое приложение требует secret_token.rb, хотя документы Rails заявляют иначе, иначе мое приложение не будет работать без него.
Отредактировано: -04/30/15 9:27 утра EST
Другое странное поведение я могу переименовать secrets.yml
в то время как secret_token.rb
остается на месте, и приложение будет по-прежнему работать.
Я попытался переименовать secret_token.rb
, добавленный <%= ENV["SECRET_KEY_BASE"] %>
в развитие, и я все еще испытываю проблему Missing secret_token.
Отредактировано: Добавлено git repo внизу. -05/08/15 2:50 утра EST
мерзавец репо: https://github.com/captain-awesome/blog_mac
Что-то странно, если бы я изменить любой из 32 символов, за исключением secret_token.rb, перезагрузить сервер ... мое приложение запустится. Является ли 32-символьная строка в файле secret_token.rb тем, что я могу сделать самостоятельно? Если да, то какова реальная цель секретного рейка?
Итак, прежде всего, '('x' * 30)', no no no. Вы можете создать секретный токен, выполнив 'rake secret' в своем приложении, это правильный способ создания секретного токена. Но это не отвечает на большинство вашего вопроса, поэтому я просто оставлю это в качестве комментария здесь. Вы также можете посмотреть цель секретного токена, чтобы вы поняли, что происходит. – jrochkind