[英]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.