【问题标题】:Rails configuration failed on Heroku deployHeroku 部署上的 Rails 配置失败
【发布时间】:2019-03-14 20:35:27
【问题描述】:

我已经阅读了所有可以在此处找到的 cmets 和问题,但似乎没有一个适用于我的情况。我有一个 Ruby on Rails 后端,它的 React 前端部署得很好,直到我添加了管理员使用 ActiveRecord 通过 CSV 文件更新数据库的能力。

当我推送到 Heroku 时,我现在收到两个警告:

###### 警告:检测 rails 配置失败
##### 警告:我们检测到使用 Active Storage 的所有预览功能所需的一些二进制依赖项在此系统上不存在。

我已经阅读了 Heroku 提供的有关 Heroku 主动存储的文章,但我仍然无法解决问题。

尝试在 Rails 控制台上进行故障排除时,我收到以下可能是罪魁祸首的错误:

/app/vendor/bundle/ruby/2.5.0/gems/aws-partitions-1.144.0/lib/aws-partitions/endpoint_provider.rb:82:in block in partition_matching_region:无法加载 Rails.config.active_storage .service: (NoMethodError) nil:NilClass 的未定义方法匹配

有人对这个问题有任何见解吗?我遇到了其他人正在发现的相同问题:其中一些错误消息对我来说并不是最有洞察力的。谢谢!

【问题讨论】:

    标签: ruby-on-rails heroku


    【解决方案1】:

    您需要安装 Heroku 的 ActiveStorage Previews Buildpack:

    heroku buildpacks:add -i 1 https://github.com/heroku/heroku-buildpack-activestorage-preview
    

    这将安装生成资产预览所需的二进制工具。更多信息可在此处获得:

    【讨论】:

    • 我又近了一步!这消除了有关二进制依赖项的警告,但我仍然遇到 rails 配置失败,在 Heroku 上的 rails 控制台中出现相同的错误。感谢您对 buildpack 的洞察!少一个警告就是一个小小的成功。
    【解决方案2】:

    https://github.com/aws/aws-sdk-ruby/issues/1240 看起来像你的问题:

    这意味着您尚未配置区域。要配置区域,请设置 AWS_REGION 环境变量,或将其作为参数传入。例如:

    key = OpenSSL::PKey::RSA.new(1024)
    s3 = Aws::S3::Encryption::Client.new(encryption_key: key, region: "us-east-1") # or the region you are using
    

    【讨论】:

    • 我看到了这个回复,并尝试将我的 config/initializers/aws.rb 文件更新为:Aws.config.update({ region: 'us-west-2', credentials: Aws::Credentials.new(ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']), }) 我离这里很远吗?
    • 这对我来说似乎很有意义,但我无法检查 - 我会尝试上面帖子中的命令,看看它们是否有效
    【解决方案3】:

    解决此问题的另一种方法是首先使用以下命令获取详细的错误日志:

    heroku run rails console
    

    如果没有错误,您将进入交互式 Ruby shell,否则您应该看到无法加载活动存储服务错误。

    如果您使用 S3,则必须设置访问密钥、秘密访问密钥、存储桶名称和存储桶区域:

    SECRET_KEY_BASE:xxx-xxx-xxxxxx-xxx-xxxxxx-xxx-xxx

    AWS_ACCESS_KEY_ID:xxx-xxx-xxx

    AWS_SECRET_ACCESS_KEY:xxx-xxx-xxxxxx-xxx-xxx

    S3_BUCKET_NAME:xxx-xxx-xxx

    AWS_BUCKET_REGION:us-east-1

    然后将你的环境变量加载到 Heroku 中: figaro heroku:set -e production

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-22
      • 2021-07-19
      • 2019-11-04
      • 2013-04-08
      相关资源
      最近更新 更多