Trang web của tôi từng hoạt động và Heroku biên dịch trước tài sản và mọi thứ. Bây giờ, dường như không có nơi nào, tôi bắt đầu nhận được rake aborted! stack level too deep
khi triển khai.tài sản cào: biên dịch trước không hoạt động trên heroku
Xóa dòng *= require_tree .
từ file application.css tôi dường như để sửa chữa stack level too deep
nhưng sau đó tôi nhận được điều này:
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)
Tất cả các liên kết của tôi để hình ảnh được chia (Tôi đang sử dụng hình ảnh-url() trong tệp css của tôi). Điều gì có thể là vấn đề và làm thế nào để sửa chữa nó?
Tôi đang sử dụng tuyết tùng chồng và đây là gemfile tôi:
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
Và đây là những phiên bản được sử dụng bởi Heroku:
Using rake (0.8.7)
Using rails (3.1.0)
Using sass (3.1.15)
Using sass-rails (3.1.6)
Dưới đây là tập tin application.rb tôi
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
Và đây là tệp production.rb của tôi
# 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
Ồ, đúng rồi! Điều đó cố định nó! Vấn đề là, tôi là một newbie và tôi nghĩ rằng dòng này 'gem' sass-rails ', "~> 3.1.0" 'có nghĩa là phiên bản gem của tôi bị khóa nhưng hình như là băm nhỏ (hoặc bất cứ tên nào) đá quý được cập nhật.Và có lẽ đó là những gì đã xảy ra, có thể Heroku nội bộ đã thay đổi một cái gì đó và đột nhiên ứng dụng của tôi ngừng hoạt động. Những thứ thật kỳ lạ khiến tôi mất cả ngày không có gì. Đối với bất kỳ ai có thể kết thúc ở đây, giải pháp là thay đổi dòng đó thành 'gem' sass-rails ', "3.1.4" '. – Ashitaka
Xin cảm ơn - Trợ giúp BIG - cùng một vấn đề, ngoài hư không. Đó là điều cuối cùng tôi cần thấy ngày hôm nay đã được đẩy đến heroku thất bại. – jpwynn
Xin vui lòng, lấy upvote của tôi !! Cảm ơn! – hajpoj