簡體   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