【发布时间】:2018-08-15 06:18:09
【问题描述】:
我在尝试使用 Rails 主动存储将我的应用程序部署到 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 时,应用程序将部署,但日志中会出现以下错误:“Detecting rails configuration failed”。
我无法打开应用,herkou 日志将显示以下错误:“缺少 :amazon Active Storage 服务的配置。可用于 [:test] 的配置”。
如果我更改也会出现同样的错误
config.active_storage.service = :amazon
到
config.active_storage.service = :local
但是,如果我将其更改为
config.active_storage.service = :test
应用程序将毫无错误地部署,我能够按预期打开应用程序并上传文件。
我已经在网上搜索过,但没有看到其他人出现此错误,因此感谢任何 cmets 或想法。 提前致谢。
【问题讨论】:
-
你用什么来存储你的环境变量?费加罗还是别的什么?
-
变量存储在heroku config vars中
-
当你运行
$ heroku config时,你所有的环境变量都会显示出来吗?使用正确的名称? -
是的,他们出现了
-
听起来你在测试环境中运行。也许您的配置变量之一是设置 rails env 或 rack env 来测试。可以查吗?
标签: ruby-on-rails amazon-web-services heroku rails-activestorage