我在使用Rails Active Storage将我的应用程序部署到Heroku时遇到了问题。在开发中,我没有任何问题,可以使用以下代码:
config.active_storage.service = :local
一切正常。
然而,在我的production.rb
文件中,我设置了以下代码:
config.active_storage.service = :amazon
并按照设置指南进行了操作。
我的storage.yml
如下所示:
test:
service: Disk
root: <%= Rails.root.join("tmp/storage") %>
local:
service: Disk
root: <%= Rails.root.join("storage") %>
amazon:
service: S3
access_key_id: <%= ENV['S3_ACCESS_KEY'] %>
secret_access_key: <%= ENV['S3_SECRET_ACCESS_KEY'] %>
region: <%= ENV['S3_REGION'] %>
bucket: <%= ENV['S3_BUCKET_NAME'] %>
当我运行git push heroku master时,应用程序将部署,但是日志中会出现以下错误:"检测rails配置失败"。
我无法打开该应用程序,heroku日志将显示以下错误:"缺少:amazon Active Storage服务的配置。可用于[:test]的配置"。
如果我将
config.active_storage.service = :amazon
更改为config.active_storage.service = :local
,则会出现相同的错误。但是,如果我将其更改为config.active_storage.service = :test
,则该应用程序将在没有错误的情况下部署,并且我可以像预期的那样打开该应用程序并上传文件。我已经搜索了网络,但没有看到其他人遇到这个错误,因此欢迎任何评论或想法。谢谢你的帮助。
$ heroku config
命令时,是否所有的环境变量都会显示出来?并且变量名正确吗? - Mark Merritt