"рейк прерван! уровень стека слишком глубокий" при развертывании в Heroku - PullRequest
18 голосов
/ 20 марта 2012

Мой веб-сайт работал, и Heroku предварительно скомпилировал ресурсы и все остальное.Теперь, казалось бы, из ниоткуда, я начал получать это сообщение о развертывании:

Preparing app for Rails asset pipeline
Running: rake assets:precompile
mkdir -p /tmp/build_31cexir1p9pwn/public/assets
mkdir -p /tmp/build_31cexir1p9pwn/public/assets/icons
mkdir -p /tmp/build_31cexir1p9pwn/public/assets/icons
mkdir -p /tmp/build_31cexir1p9pwn/public/assets
mkdir -p /tmp/build_31cexir1p9pwn/public/assets
(in /tmp/build_31cexir1p9pwn)
mkdir -p /tmp/build_31cexir1p9pwn/public/assets
mkdir -p /tmp/build_31cexir1p9pwn/public/assets
rake aborted!
stack level too deep
(in /tmp/build_31cexir1p9pwn/app/assets/stylesheets/theme.css.scss)

(See full trace by running task with --trace)
Precompiling assets failed, enabling runtime asset compilation
Injecting rails31_enable_runtime_asset_compilation

Он не может прекомпилировать мой файл CSS.

Я использую стек кедров, и это мой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

Вот мой файл application.rb

# 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'

А вот мой файл production.rb

# Code is not reloaded between requests
config.cache_classes = true

# 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

Теперь все мои ссылки на изображения не работают(Я использую image-url () в моем файле CSS).В чем может быть проблема и как ее исправить?

Ответы [ 3 ]

30 голосов
/ 22 марта 2012

Я был действительно в отчаянии, поэтому я задал еще один вопрос . По-видимому, это вызвано sass и понижением до sass-rails v3.1.4 v3.2.5 заставит его работать.

1 голос
/ 06 апреля 2017

Для ruby ​​2.3.0 или более поздних версий имеется следующая строка в файле application.rb для Rails.Но в версии 2.4.0 и выше они реализованы как автоматизированные.

Bundler.require(*Rails.groups)

Смена версии ruby ​​на 2.3.0 сделала свое дело.Этот спас мой день.

1 голос
/ 12 ноября 2013

обновление до sass v3.2.12 помогло мне

но в целом, похоже, что проблема исправлена ​​во всех текущих версиях, просто сделайте обновление пакета, и все будет хорошо.

...