Ruby on rails Heroku在上载资产时忽略RACK_ENV=暂存

Ruby on rails Heroku在上载资产时忽略RACK_ENV=暂存,ruby-on-rails,ruby,heroku,amazon-s3,asset-pipeline,Ruby On Rails,Ruby,Heroku,Amazon S3,Asset Pipeline,我为生产和登台环境设置了2个heroku应用程序。 我使用AmazonS3来存储资产。 在执行部署到生产时,资产被编译并存储在正确的存储桶中。 但是,在执行部署到暂存时,资产会上载到生产存储桶。 以下是登台应用程序的heroku配置变量: RACK_ENV: staging RAILS_ENV: staging S3_BUCKET: xxx-staging S3_HOST:

我为生产和登台环境设置了2个heroku应用程序。 我使用AmazonS3来存储资产。 在执行部署到生产时,资产被编译并存储在正确的存储桶中。 但是,在执行部署到暂存时,资产会上载到生产存储桶。 以下是登台应用程序的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
在staging应用程序中,样式表url看起来是正确的

<link href="https://xxx-staging.s3.amazonaws.com/assets/application-cfddf5f3b9e77c69b3ab4072cc38a7e6.css" media="screen" rel="stylesheet" type="text/css" />
你知道我缺少什么配置吗?

这很有效!!! 我就这么做了 heroku实验室:启用用户环境编译-我的应用程序暂存 之后 git推送暂存:主 这些资产现在被上传到正确的存储桶(xxx暂存)


谢谢Chris,Heroku上的
用户环境编译
实验室功能如何

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

您是否在
config/environments/staging.rb
中有一个类似于
production.rb
的文件?是的,我在staging.rb、production.rb和development.rb文件夹中有。除了ENV['S3_BUCKET']和ENV['S3_HOST']哪个版本的Rails之外,Staging看起来与生产类似?您如何将这些资产同步到S3?我使用rails 3.2.13。要同步资产,我使用asset_sync gem。当我运行“heroku run assets:precompile--app my app staging”时,资产会上载到正确的位置(staging bucket),但当我使用“git push staging staging:master”进行部署时,资产会上载到生产bucke。关于heroku上的
user env compile
labs功能<代码>heroku实验室:启用用户环境编译-我的应用程序我把它添加为我自己的答案,这样我就可以获得帮助你的功劳了D
heroku labs:enable user-env-compile -a myapp