Rails 6 heroku 预编译资产失败
Rails 6 heroku Precompiling assets failed
在 heroku
上使用 rails 和 omniauth 编译失败
remote: -----> Preparing app for Rails asset pipeline
remote: Running: rake assets:precompile
remote: rake aborted!
remote: NoMethodError: undefined method `[]' for nil:NilClass
remote: /tmp/build_f21d4b6cc71ba2ef116eca0b20a72d4b/config/initializers/devise.rb:263:in `block in <main>'
remote: /tmp/build_f21d4b6cc71ba2ef116eca0b20a72d4b/vendor/bundle/ruby/2.7.0/gems/devise-4.7.1/lib/devise.rb:311:in `setup'
remote: /tmp/build_f21d4b6cc71ba2ef116eca0b20a72d4b/config/initializers/devise.rb:5:in `<main>'
我按照设计 .rb 到 263,这是我添加 twitter omniauth
config.omniauth :twitter, Rails.application.credentials.twitter[:app_id], Rails.application.credentials.twitter[:app_secret]
我正在存储我存储在 config/credentials 中的凭据。yml.enc
问题是由于无法在生产环境中访问 credentials.yml 造成的。我们可以在生产中访问主密钥值,因为它没有提交。
我通过在 Heroku 中添加 master.key 值解决了这个问题,在设置下,config vars master key
在 heroku
上使用 rails 和 omniauth 编译失败remote: -----> Preparing app for Rails asset pipeline
remote: Running: rake assets:precompile
remote: rake aborted!
remote: NoMethodError: undefined method `[]' for nil:NilClass
remote: /tmp/build_f21d4b6cc71ba2ef116eca0b20a72d4b/config/initializers/devise.rb:263:in `block in <main>'
remote: /tmp/build_f21d4b6cc71ba2ef116eca0b20a72d4b/vendor/bundle/ruby/2.7.0/gems/devise-4.7.1/lib/devise.rb:311:in `setup'
remote: /tmp/build_f21d4b6cc71ba2ef116eca0b20a72d4b/config/initializers/devise.rb:5:in `<main>'
我按照设计 .rb 到 263,这是我添加 twitter omniauth
config.omniauth :twitter, Rails.application.credentials.twitter[:app_id], Rails.application.credentials.twitter[:app_secret]
我正在存储我存储在 config/credentials 中的凭据。yml.enc
问题是由于无法在生产环境中访问 credentials.yml 造成的。我们可以在生产中访问主密钥值,因为它没有提交。
我通过在 Heroku 中添加 master.key 值解决了这个问题,在设置下,config vars master key