加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails-3.1 – 耙资产:推送到Heroku时预编译失败

发布时间:2020-12-16 22:06:34 所属栏目:百科 来源:网络整理
导读:我目前在我的Rails应用程序中使用asset_sync,并且我的Heroku应用程序中设置了环境变量.当我运行heroku配置我得到: AWS_ACCESS_KEY_ID: XXXXXXXXXXXXXXXXXXAWS_SECRET_ACCESS_KEY: XXXXXXXXXXXXXXXXXXFOG_DIRECTORY: MY-BUCKET-NAMEFOG_PROVIDER: AWSetc...
我目前在我的Rails应用程序中使用asset_sync,并且我的Heroku应用程序中设置了环境变量.当我运行heroku配置我得到:
AWS_ACCESS_KEY_ID:     XXXXXXXXXXXXXXXXXX
AWS_SECRET_ACCESS_KEY: XXXXXXXXXXXXXXXXXX
FOG_DIRECTORY:         MY-BUCKET-NAME
FOG_PROVIDER:          AWS
etc...

当我将我的应用程序推送到Heroku时,它会尝试运行rake资源:预编译,并且我收到以下消息:

Preparing app for Rails asset pipeline
Running: rake assets:precompile
/usr/local/bin/ruby /tmp/build_2pa7aisux9av8/vendor/bundle/ruby/1.9.1/bin/rake assets:precompile:nondigest RAILS_ENV=production RAILS_GROUPS=assets
AssetSync: using /tmp/build_2pa7aisux9av8/config/initializers/asset_sync.rb
rake aborted!
Fog directory can't be blank,Aws access key can't be blank,Aws secret access key can't be blank

但是后来我跑:

heroku run rake assets:precompile --app my-app-name

…它处理所有东西,同步到S3就好了:

Running `rake assets:precompile` attached to terminal... up,run.1
/usr/local/bin/ruby /app/vendor/bundle/ruby/1.9.1/bin/rake assets:precompile:all RAILS_ENV=staging RAILS_GROUPS=assets
AssetSync: using /app/config/initializers/asset_sync.rb
/usr/local/bin/ruby /app/vendor/bundle/ruby/1.9.1/bin/rake assets:precompile:nondigest RAILS_ENV=staging RAILS_GROUPS=assets
AssetSync: using /app/config/initializers/asset_sync.rb
AssetSync: Syncing.
Using: Directory Search of /app/public/assets
Uploading: assets/application-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.css
Uploading: assets/application-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.css.gz
Uploading: assets/application-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.css.gz
Uploading: assets/application-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.css
AssetSync: Done.

任何想法为什么它不会在推动时工作,但它会工作正常,当我heroku运行rake资产:预编译?

解决方法

我可以看到你正在运行资产:使用–app my-app-name选项预编译耙任务.只要确定,Heroku有多个应用程序? (例如分期和生产).如果你确实确保运行heroku配置–app我的app-name结果输出你有与heroku配置.

如果您使用上述命令获得预期结果,那么可能ENV vars在git push上不可用,如这里所建议的asset_sync_test github readme.你可以通过在你的config / environments / * .rb文件中使用以下内容:

config.asset_sync.aws_access_key = ENV['AWS_ACCESS_KEY_ID']
config.asset_sync.aws_access_secret = ENV['AWS_SECRET_ACCESS_KEY']
config.asset_sync.aws_bucket = ENV['FOG_DIRECTORY']
config.asset_sync.fog_provider = ENV['FOG_PROVIDER']

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读