Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 资产同步Gem导致Heroku挂起预编译_Ruby On Rails_Heroku_Amazon Web Services_Asset Pipeline_Precompile - Fatal编程技术网

Ruby on rails 资产同步Gem导致Heroku挂起预编译

Ruby on rails 资产同步Gem导致Heroku挂起预编译,ruby-on-rails,heroku,amazon-web-services,asset-pipeline,precompile,Ruby On Rails,Heroku,Amazon Web Services,Asset Pipeline,Precompile,我正在使用带有Heroku部署的asset_sync gem(Rails 3.2.3)。预编译在本地工作得很好(将资产推到AWS存储桶中,没有问题),但当我推到Heroku时,它在资产预编译期间挂起 Preparing app for Rails asset pipeline Running: rake assets:precompile AssetSync: using default configuration from built-in initializer 然后,它最终在没有任何解释

我正在使用带有Heroku部署的asset_sync gem(Rails 3.2.3)。预编译在本地工作得很好(将资产推到AWS存储桶中,没有问题),但当我推到Heroku时,它在资产预编译期间挂起

Preparing app for Rails asset pipeline
Running: rake assets:precompile
AssetSync: using default configuration from built-in initializer
然后,它最终在没有任何解释的情况下超时:

/app/slug-compiler/lib/utils.rb:66:in `block (2 levels) in spawn': command='/app/slug-compiler/lib/../../tmp/buildpacks/ruby/bin/compile /tmp/build_33de6far26atq /app/tmp/repo.git/.cache' exit_status=0 out='' at=timeout elapsed=900.1074194908142 (Utils::TimeoutError)
    from /app/slug-compiler/lib/utils.rb:52:in `loop'
    from /app/slug-compiler/lib/utils.rb:52:in `block in spawn'
    from /app/slug-compiler/lib/utils.rb:47:in `popen'
    from /app/slug-compiler/lib/utils.rb:47:in `spawn'
    from /app/slug-compiler/lib/buildpack.rb:38:in `block in compile'
    from /app/slug-compiler/lib/buildpack.rb:36:in `fork'
    from /app/slug-compiler/lib/buildpack.rb:36:in `compile'
    from /app/slug-compiler/lib/slug.rb:487:in `block in run_buildpack'
    from /app/slug-compiler/lib/utils.rb:121:in `log'
    from /app/slug-compiler/lib/slug.rb:743:in `log'
    from /app/slug-compiler/lib/slug.rb:486:in `run_buildpack'
    from /app/slug-compiler/lib/slug.rb:116:in `block (2 levels) in compile'
    from /app/slug-compiler/lib/utils.rb:102:in `block in timeout'
    from /usr/local/lib/ruby/1.9.1/timeout.rb:58:in `timeout'
    from /app/slug-compiler/lib/utils.rb:102:in `rescue in timeout'
    from /app/slug-compiler/lib/utils.rb:97:in `timeout'
    from /app/slug-compiler/lib/slug.rb:104:in `block in compile'
    from /app/slug-compiler/lib/utils.rb:121:in `log'
    from /app/slug-compiler/lib/slug.rb:743:in `log'
    from /app/slug-compiler/lib/slug.rb:103:in `compile'
    from /app/slug-compiler/bin/slugc:85:in `block in <main>'
    from /app/slug-compiler/lib/slug.rb:495:in `block in lock'
    from /app/slug-compiler/lib/repo_lock.rb:44:in `call'
    from /app/slug-compiler/lib/repo_lock.rb:44:in `run'
    from /app/slug-compiler/lib/slug.rb:495:in `lock'
    from /app/slug-compiler/bin/slugc:66:in `<main>'
 !     Heroku push rejected, failed to compile Ruby/rails app
我没有签入公共/资产文件夹,并且在我的production.rb中有以下设置:

  # Disable Rails's static asset server (Apache or nginx will already do this)
  config.serve_static_assets = false

  # Compress JavaScripts and CSS
  config.assets.compress = true

  # Don't fallback to assets pipeline if a precompiled asset is missed (This would involve live compilation and a big performance issue)
  config.assets.compile = false

  # Generate digests for assets URLs (Fingerprinting)
  config.assets.digest = true

  # (Heroku requires that this be false)
  config.assets.initialize_on_precompile = false

  # AWS Bucket
  config.action_controller.asset_host = "http://#{ENV['FOG_DIRECTORY']}.s3.amazonaws.com"
如asset_sync的自述文件所述,我在Heroku上设置了以下内容:

$heroku labs:enable user-env-compile -a myapp

是什么导致了这些问题和/或如何进一步调试它们。我找不到一种方法来获得更多关于Heroku上为何挂起预编译的信息。

结果表明,这是Sass编译器中的一个问题。它被什么东西噎住了,没有任何差错。我通过使用概述的步骤获得了更多的信息,方法是等待它挂起,然后退出流程。这给了我一个sass解析器的堆栈跟踪。我想这是一种循环依赖

$heroku labs:enable user-env-compile -a myapp