我已经阅读了所有在这里可以找到的评论和问题,但似乎没有一个适合我的情况。我有一个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:在partition_matching_region的块中:无法加载Rails.config.active_storage .service:(NoMethodError) nil:NilClass的未定义方法匹配
有人对此问题有见识吗?我遇到了其他人正在发现的东西:这些错误消息中有些对我而言不是最有见地的。谢谢!
答案 0 :(得分:1)
您需要安装Heroku的ActiveStorage Previews Buildpack:
heroku buildpacks:add -i 1 https://github.com/heroku/heroku-buildpack-activestorage-preview
这将安装生成资产预览所需的二进制工具。可在此处获得更多信息:
答案 1 :(得分:0)
这表示您尚未配置区域。要配置区域,请设置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
答案 2 :(得分:0)
解决此问题的另一种方法是,首先使用以下命令获取详细的错误日志:
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