Ruby on rails Heroku在上载资产时忽略RACK_ENV=暂存
我为生产和登台环境设置了2个heroku应用程序。 我使用AmazonS3来存储资产。 在执行部署到生产时,资产被编译并存储在正确的存储桶中。 但是,在执行部署到暂存时,资产会上载到生产存储桶。 以下是登台应用程序的heroku配置变量: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:
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