Trang web của tôi từng làm việc 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 thông báo này khi triển khai:"rake hủy bỏ! Stack cấp quá sâu" trong khi triển khai đến 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
Nó không thể biên dịch trước tệp css của tôi.
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
Dưới đây là tập tin application.rb tôi
# 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'
Và đây là tập tin production.rb tôi
# 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
Bây giờ tất cả các liên kết của tôi để hình ảnh bị hỏng (Tôi đang sử dụng hình ảnh-url() trong tập tin css của tôi). Điều gì có thể là vấn đề và làm thế nào để sửa chữa nó?
bạn sẽ có thể liệt kê tệp này, theme.css.scss. Dường như tràn với đường ống nội dung của bạn –
Lỗi "mức chồng quá mức" là, trong trường hợp ứng dụng đang hết bộ nhớ. Nó thường là kết quả của các chương trình sử dụng rất nhiều đệ quy (các hàm tự gọi), và những thứ như các trình phân tích cú pháp (SASS tới CSS, CoffeeScript thành JS, ERB thành HTML) thường sẽ sử dụng đệ quy. Là một công việc xung quanh, hãy thử biên dịch trước các tài sản trước khi triển khai - bạn có thể có nhiều bộ nhớ hơn trên máy cục bộ của bạn so với trường hợp Heroku. –
Đây là một lỗi khá nghiêm trọng. Bạn đã báo cáo về github? – jcollum