【发布时间】: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