【问题标题】:Rails 4: Devise.secret_key was not setRails 4:没有设置 Devise.secret_key
【发布时间】:2016-01-10 14:44:10
【问题描述】:

这似乎是一个热门问题,因为我在 Stack Overflow 上发现了许多类似的问题:

但是,以上方法似乎都无法解决我的问题。

这是我的情况:

  1. 我使用 font-awesome-rails gem 安装了 Font Awesome,它在本地运行,但每当我部署到 Heroku 时,Font Awesome 图标就不再出现。
  2. 因此,我寻找解决此问题的答案,并发现我需要运行 RAILS_ENV=production bundle exec rake assets:precompile 才能使事情正常进行。
  3. 但是,当我运行此命令时,我在终端中收到以下错误:

rake aborted! Devise.secret_key was not set. Please add the following to your Devise initializer: config.secret_key = '—— MY_SECRET_KEY_HERE ———' Please ensure you restarted your application after installing Devise or setting the key.

根据我问题开头提到的问题中提供的解决方案,我确实有devise.rb 中的config.secret_key = ENV['DEVISE_SECRET_KEY'] if Rails.env.production?

另外,as recommended here,我确实运行了heroku config:set DEVISE_SECRET_KEY='—— MY_SECRET_KEY_HERE ———' -- app name_of_my_app_here

因为我不确定,所以我也运行了heroku config:set DEVISE_SECRET_KEY=—— MY_SECRET_KEY_HERE ——— -- app name_of_my_app_here(我的密钥周围没有单引号)。

但这些都不起作用。

我不断收到同样的错误。

我做错了什么?

【问题讨论】:

  • 您可以通过heroku config -a app_name 查看您设置了哪些环境变量。默认情况下,在 Rails 4 应用程序中,Devise 应该使用您应用程序的 secret_key_base。
  • 感谢您的回答。当我运行您推荐的命令时,我已经设置了SECRET_KEY_BASE。从那里开始,我接下来应该怎么做才能尝试解决我的问题?
  • 您是否尝试重新启动您的应用程序? heroku restart -a app_name
  • 刚试过。仍然收到相同的错误消息。我刚刚注意到一些事情:每次我收到错误时,终端中建议的密钥都会更改。

标签: ruby-on-rails ruby-on-rails-4 heroku devise asset-pipeline


【解决方案1】:

我找到了解决这个问题的方法。

我没有继续在 font-awesome-rails gem 上苦苦挣扎,而是将其卸载并替换为 font-awesome-sass,这是 rails 的官方 Font Awesome gem。

Following the guidelines offered here(部分:EASY:SASS Ruby Gem),然后我运行 bundle 并添加:

@import "font-awesome-sprockets";
@import "font-awesome";

到我的application.scss 文件。

我还从同一个文件中删除了旧的 @import "font-awesome.css"; 行。

现在,Font Awesome 可以在本地和 Heroku 上使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-29
    • 2016-05-14
    • 1970-01-01
    • 1970-01-01
    • 2015-02-26
    • 1970-01-01
    相关资源
    最近更新 更多