我的heroku设置有问题,我正在尝试用
修复它RAILS_ENV=production bundle exec rake assets:precompile
我收到错误消息
ArgumentError: Missing required arguments: aws_access_key_id, aws_secret_access_key
我该如何解决这个问题?
我已经设置了我的heroku环境变量。 heroku config
给出了
AWS_ACCESS_KEY_ID: XXXXX
AWS_SECRET_ACCESS_KEY: XXXXX
DATABASE_URL: postgres://XXXXX.compute-1.amazonaws.com:XXXXX
RESQL_BLACK_URL: postgres://XXXXX.compute-1.amazonaws.com:XXXXX
LANG: en_US.UTF-8
RACK_ENV: production
RAILS_ENV: production
S3_ACCESS_KEY: XXXXX
S3_BUCKET: XXXXX
S3_SECRET_KEY: XXXXX
SENDGRID_PASSWORD: XXXXX
SENDGRID_USERNAME: XXXXX
我是否需要在config / production.rb中添加一些内容?我试过这个:
config.aws_access_key_id = ENV['AWS_ACCESS_KEY_ID']
config.aws_secret_access_key = ENV['AWS_SECRET_ACCESS_KEY']
在config / initializers / carrier_wave.rb中,我添加了:
S3Client = Aws::S3::Client.new(
aws_access_key_id: ENV['AWS_ACCESS_KEY_ID'],
aws_secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'],
aws_region: 'us-east-1'
)
但它仍然会出现同样的错误。
答案 0 :(得分:0)
使用aws.rb创建一个初始值设定项:(如果已经有,则添加)
S3Client = Aws::S3::Client.new(
access_key_id: 'ACCESS_KEY_ID',
secret_access_key: 'SECRET_ACCESS_KEY',
region: 'REGION'
)
答案 1 :(得分:0)
如果您在本地运行此命令,则问题是本地计算机上未设置ENV。
Heroku应该在部署时自动预编译您的资产。如果必须在本地机器上进行,只需设置ENV变量。