简体   繁体   English

Rails 6 heroku 预编译资产失败

[英]Rails 6 heroku Precompiling assets failed

compile fail with rails and omniauth on heroku在 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>'

I follow the devise.rb to 263 which is where I add twitter omniauth我按照 devise.rb 到 263,这是我添加 twitter omniauth 的地方

config.omniauth :twitter, Rails.application.credentials.twitter[:app_id], Rails.application.credentials.twitter[:app_secret]

I am storing my credentials stored in config/credentials.yml.enc我将我的凭据存储在 config/credentials.yml.enc

The problem was caused by not being able to access the credentials.yml in production.该问题是由于无法在生产中访问 credentials.yml 引起的。 We could access the master key value in production as it is not committed.我们可以在生产中访问主键值,因为它没有被提交。

I fixed the issue by adding the master.key-value in Heroku, under settings, config vars master key我通过在 Heroku 中添加 master.key-value 解决了这个问题,在设置下,config vars master key

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM