Open gauravgupta123 opened 13 years ago
+1 we can't use jammit-s3 right now because we have a heroku staging, heroku testing and heroku development server.
I workaround this by doing this:
s3_bucket: <%= "bucket_#{ENV['STAGE']}" %>
then
$ STAGE=staging bundle exec jammit-s3
Actually Jammit itself can handle multiple stage settings: https://github.com/documentcloud/jammit/blob/master/lib/jammit.rb#L74
Simply wrap stage specific settings using stage name in assets.yml:
embed_assets: off
compress_assets: on
production:
s3_bucket: production-assets
s3_access_key_id: PRODUCTION KEY
s3_secret_access_key: SecretProductionAccessKey
staging:
s3_bucket: staging-assets
s3_access_key_id: STAGING KEY
s3_secret_access_key: SecretStagingAccessKey
...
Don't forget to set the environment when calling Jammit S3
$ RAILS_ENV=staging bundle exec jammit-s3
Hope that helps.
That definitely did help me. I was trying to use a separate assets_staging.yml file and it wasn't working out for me -- but these namespaces did the trick. Thanks @iltempo.
A single assets.yml stores the configuration keys for the plugin, irrespective of the environment. This creates problems when the app is deployed to a staging environment, since it causes files to be replaced in the same S3 bucket used by the production environment.
Infact, I would like to turn Cloudfront off on staging and get the files from my own server, or directly from S3 (without the CDN layer)