繁体   English   中英

Heroku 部署上的 Rails 配置失败

[英]Rails configuration failed on Heroku deploy

我已经通读了我可以在这里找到的所有评论和问题,但它们似乎都不适用于我的情况。 我有一个 Ruby on Rails 后端,React 前端部署良好,直到我添加了管理员使用 ActiveRecord 通过 CSV 文件更新数据库的能力。

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

###### 警告:检测导轨配置失败
##### 警告:我们检测到此系统上不存在使用 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 partition_matching_region 中的块:无法加载 Rails.config.active_storage.service: (NoMethodError) nil:NilClass 的未定义方法匹配

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

你需要安装 Heroku 的 ActiveStorage Previews Buildpack:

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

这将安装生成资产预览所需的二进制工具。 更多信息请点击这里:

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

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

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

暂无
暂无

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

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