【问题标题】:Heroku ignores RACK_ENV= staging when uploading assetsHeroku 在上传资产时忽略 RACK_ENV= staging
【发布时间】:2013-09-05 23:38:20
【问题描述】:

我为生产和登台环境设置了 2 个 Heroku 应用程序。 我使用亚马逊 S3 来存储资产。 在部署到生产环境时,资产会被编译并存储在正确的存储桶中。 但是,在进行部署以暂存时,资产会上传到生产存储桶。 这些是暂存应用程序的 heroku 配置变量:

RACK_ENV:                     staging
RAILS_ENV:                    staging
S3_BUCKET:                    xxx-staging
S3_HOST:                      https://xxx-staging.s3.amazonaws.com
S3_KEY:                       xxx
S3_REGION:                    eu-west-1
S3_SECRET:                    xxx

在暂存应用中,样式表 url 看起来是正确的

<link href="https://xxx-staging.s3.amazonaws.com/assets/application-cfddf5f3b9e77c69b3ab4072cc38a7e6.css" media="screen" rel="stylesheet" type="text/css" />

但是桶是空的

staging.rb
config.assets.enabled = true
ENV['S3_BUCKET']='xxx-staging'
...

知道我缺少什么配置吗?

【问题讨论】:

  • 您在config/environments/staging.rb 是否有与production.rb 相似的文件?
  • 是的,我在那个文件夹 staging.rb、production.rb 和 development.rb 中有。除了 ENV['S3_BUCKET'] 和 ENV['S3_HOST'] 之外,暂存看起来类似于生产
  • Rails 的哪个版本?您如何将资产同步到 S3?
  • 我使用 Rails 3.2.13。要同步资产,我使用asset_sync gem。当我运行“heroku run assets:precompile --app my-app-staging”时,资产会上传到正确的位置(暂存桶),但是当我使用“git push staging staging:master”部署时,资产会上传到生产环境桶
  • Heroku 上的 user-env-compile 实验室功能怎么样? heroku labs:enable user-env-compile -a myapp

标签: ruby-on-rails ruby heroku amazon-s3 asset-pipeline


【解决方案1】:

Heroku 上的 user-env-compile 实验室功能怎么样?

heroku labs:enable user-env-compile -a myapp

【讨论】:

    【解决方案2】:

    成功了!!! 我已经做了 heroku labs:启用 user-env-compile -a my-app-staging 之后 git push staging 登台:master 并且资产现在已上传到正确的存储桶(xxx-staging)

    谢谢你,克里斯

    【讨论】:

    • 我继续添加它作为我自己的答案,这样我可以得到帮助你的功劳。 :D
    猜你喜欢
    • 2012-09-01
    • 2022-07-25
    • 1970-01-01
    • 2015-11-05
    • 2016-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多