rake资产:预编译不在heroku上工作

Ash*_*aka 16 ruby-on-rails heroku ruby-on-rails-3

我的网站曾经在工作,Heroku预编译了资产和一切.现在,似乎无处不在,我开始进行rake aborted! stack level too deep部署.

*= require_tree .从我的application.css文件中删除该行似乎修复了stack level too deep但是我得到了这个:

Running: rake assets:precompile
(in /tmp/build_b8o2t4k8frce)
/usr/local/bin/ruby /tmp/build_b8o2t4k8frce/vendor/bundle/ruby/1.9.1/bin/rake assets:precompile:nondigest RAILS_ENV=production RAILS_GROUPS=assets
(in /tmp/build_b8o2t4k8frce)
Run Code Online (Sandbox Code Playgroud)

我所有的图像链接都被破坏了(我在我的css文件中使用了image-url()).可能是什么问题,我该如何解决?

我正在使用雪松堆栈,这是我的gemfile:

gem 'rails', '3.1.0'
gem 'rake', '0.8.7'
gem 'devise'

group :production do
  gem 'pg'
  gem 'thin'
end

group :assets do
  gem 'sass-rails', "  ~> 3.1.0"
  gem 'coffee-rails', "~> 3.1.0"
  gem 'uglifier'
end
Run Code Online (Sandbox Code Playgroud)

以下是heroku使用的版本:

Using rake (0.8.7)
Using rails (3.1.0)
Using sass (3.1.15)
Using sass-rails (3.1.6)
Run Code Online (Sandbox Code Playgroud)

这是我的application.rb文件

if defined?(Bundler)
  # If you precompile assets before deploying to production, use this line
  Bundler.require *Rails.groups(:assets => %w(development test))
  # If you want your assets lazily compiled in production, use this line
  # Bundler.require(:default, :assets, Rails.env)
end

module App
  class Application < Rails::Application

    # Enable the asset pipeline
    config.assets.enabled = true

    # Version of your assets, change this if you want to expire all your assets.
    config.assets.version = '1.0'
  end
end
Run Code Online (Sandbox Code Playgroud)

这是我的production.rb文件

# Full error reports are disabled and caching is turned on
config.consider_all_requests_local       = false
config.action_controller.perform_caching = true

# Enable Rails's static asset server (Apache or nginx will not need this)
config.serve_static_assets = true

# Set expire header of 30 days for static files
config.static_cache_control = "public, max-age=2592000"

# Allow JavaScript and CSS compression
config.assets.compress = true

# Compress JavaScript by removing whitespace, shortening variable names, ...
config.assets.js_compressor = :uglifier

# Don't fallback to assets pipeline if a precompiled asset is missed
config.assets.compile = true

# Generate digests for assets URLs
config.assets.digest = true
Run Code Online (Sandbox Code Playgroud)

Chr*_*ess 34

我遇到了类似的问题,并在此处找到答案:https://github.com/rails/sass-rails/issues/78.基本上,降级到sass-rails v3.1.4.希望这可以帮助

  • 哇,就是这样!修好了!问题是,我是一个新手,我认为这行'宝石'sass-rails',"〜> 3.1.0"`意味着我的宝石版本已被锁定,但显然是那个波浪形的入侵者(或者其名称)让我们宝石会更新.也许这就是发生的事情,也许内部Heroku改变了一些东西,突然间我的应用程序停止了工作.真是奇怪的东西让我一整天都失去了.对于任何可能在这里结束的人来说,解决方案是将该行更改为"gem"sass-rails',"3.1.4". (5认同)
  • `gem'sass-rails','3.1.5'`似乎也解决了这个问题. (2认同)