msa*_*ers 9 heroku ruby-on-rails-3.1 asset-pipeline
我目前在我的Rails应用程序中使用asset_sync,并且我在我的Heroku应用程序中设置了环境变量.当我运行heroku配置时,我得到:
AWS_ACCESS_KEY_ID: XXXXXXXXXXXXXXXXXX
AWS_SECRET_ACCESS_KEY: XXXXXXXXXXXXXXXXXX
FOG_DIRECTORY: MY-BUCKET-NAME
FOG_PROVIDER: AWS
etc...
Run Code Online (Sandbox Code Playgroud)
当我将我的应用程序推送到Heroku时,它会尝试运行rake资产:precompile并收到以下消息:
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
Run Code Online (Sandbox Code Playgroud)
但后来我跑了:
heroku run rake assets:precompile --app my-app-name
Run Code Online (Sandbox Code Playgroud)
...它处理所有内容并同步到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.
Run Code Online (Sandbox Code Playgroud)
任何想法为什么它在推送期间不起作用但是当我运行rake资产时它会工作正常:预编译?
小智 19
我在其中一台服务器上遇到了同样的问题,直到我在asset_sync github页面上找到了说你需要运行的文档
heroku labs:enable user-env-compile --app <appname>
Run Code Online (Sandbox Code Playgroud)
为了它的工作.
Heroku还有AssetSync文档
现在只编译一次资产真是太好了
我可以看到您正在使用选项运行 asset:precompile rake 任务--app my-app-name。只是为了确定,您是否有多个应用程序Heroku?(例如舞台和制作)。如果您确实确保运行 heroku config--app my-app-name会产生您使用 config 得到的输出heroku。
如果您使用上述命令获得了预期结果,则很可能变量在 git push 上不可用,如asset_sync_test github readmeENV所示。您可以通过在文件中使用以下内容来解决这个问题: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']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3711 次 |
| 最近记录: |