【问题标题】:Rails - Activestorage causing rails configuration failureRails - Activestorage 导致 Rails 配置失败
【发布时间】: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 = :amazonconfig.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


【解决方案1】:

问题是 storage.yml 中的缩进 test: local: 缩进一个空格,amazon: 缩进两个空格。

我遇到了同样的问题,很难注意到多余的空间。在 YAML 中,空格很重要,但 Ruby 开发人员不习惯让空格很重要。

【讨论】:

    猜你喜欢
    • 2020-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-04
    • 1970-01-01
    • 1970-01-01
    • 2019-05-19
    相关资源
    最近更新 更多