2012-03-20 15 views
16

मेरी वेबसाइट काम करने के लिए प्रयुक्त होती थी और हेरोोक ने संपत्तियों और सबकुछ का प्रीकंपल किया था। अब, कहीं से बाहर नहीं, मुझे तैनाती पर rake aborted! stack level too deep प्राप्त करना शुरू कर दिया।रेक संपत्तियां: प्रीकंपाइल हेरोकू पर काम नहीं कर रही है

मेरी application.css फ़ाइल से लाइन *= require_tree . हटाया जा रहा है 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) 

सभी छवियों टूट रहे हैं (मैं छवि यूआरएल उपयोग कर रहा हूँ करने के लिए अपने लिंक() मेरी सीएसएस फ़ाइल)। समस्या क्या हो सकती है और मैं इसे कैसे ठीक कर सकता हूं? संस्करणों Heroku द्वारा प्रयोग किया जाता

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 

और यहाँ कर रहे हैं:

मैं देवदार ढेर उपयोग कर रहा हूँ और यह मेरा gemfile है

Using rake (0.8.7) 
Using rails (3.1.0) 
Using sass (3.1.15) 
Using sass-rails (3.1.6) 

यहाँ मेरी 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 

और यहां मेरा उत्पादन है। आरबी फ़ाइल

# 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 

उत्तर

34

मुझे एक ही समस्या थी और यहां जवाब मिला: https://github.com/rails/sass-rails/issues/78। असल में, एसएएस-रेल v3.1.4 में डाउनग्रेड करें। उम्मीद है कि यह

+5

वाह, यह है! यह तय है! बात यह है कि, मैं एक नौसिखिया हूं और मैंने सोचा कि यह लाइन 'मणि' एसस-रेल ', "~> 3.1.0" का मतलब है कि मेरा मणि संस्करण बंद कर दिया गया था, लेकिन जाहिर है कि squiggly हैशरकेट (या जो कुछ भी है) चलो मणि अद्यतन किया जाना चाहिए।और शायद यही हुआ, शायद आंतरिक रूप से हेरोोकू ने कुछ बदल दिया और अचानक मेरे ऐप ने काम करना बंद कर दिया। वास्तव में अजीब चीजें जिसने मुझे कुछ भी नहीं के लिए पूरे दिन खो दिया। किसी भी व्यक्ति के लिए जो यहां समाप्त हो सकता है, समाधान उस लाइन को 'मणि' sass-rails ', "3.1.4" में बदलना था। – Ashitaka

+0

धन्यवाद - बड़ी मदद - एक ही मुद्दा, कहीं से बाहर नहीं। यही वह आखिरी बात थी जिसे आज देखने के लिए जरूरी था कि वह उसके असोकू को विफल कर दे। – jpwynn

+0

कृपया, मेरा अपवित्र ले लो !! धन्यवाद! – hajpoj

1

आपको application.css से यह *= require tree . हटा देना नहीं था, कोज़ यह आपके सभी शैलियों को लोड करता है। बस इसे इस तरह जोड़ सकते हैं और कॉन्फ़िगर अपने config/production.rb फ़ाइल:

config.assets.precompile = %w{application.js} 

और RAILS_ENV = उत्पादन रेक संपत्ति चलाएँ: precompile

संपादित इस config का उपयोग करने के कोशिश:

config.assets.digest = true 
+0

हाँ, यह 'requ_tree' के साथ काम करना चाहिए, लेकिन यदि मैं इसे जोड़ता हूं तो मुझे' रेक को निरस्त कर दिया जाता है! ढेर स्तर बहुत गहरा '। मुझे नहीं पता कि यह कैसे हुआ – Ashitaka

+0

क्षमा करें, मैं उस विशिष्ट रेखा की प्रतिलिपि बनाना भूल गया था, मैं पहले ही पाचन का उपयोग कर रहा था। मुझे एक कामकाज मिला है, हालांकि मुझे यह पसंद नहीं है – Ashitaka

0

जाहिर है sass काम करना बंद कर दिया और मैं धैर्य से बाहर भाग गया तो मैंने फैसला किया कि अब इसका उपयोग न करें।

#theme.css.scss 
background-image:image-url('image.png'); 

अब मैं बस एक ERB फ़ाइल उपयोग कर रहा हूँ: इसके बजाय ऐसा करने का

#theme.css.erb 
background-image:url(<%= asset_path 'image.png' %>); 

मैं सिर्फ इस वजह से पूरे दिन खो दिया है और मुझे पता नहीं क्यों, क्योंकि यह सिर्फ कल ठीक काम कर रहा था । अगर कोई जानता है कि इसका कारण क्या है और मैं फिर से सास का उपयोग कैसे कर सकता हूं, तो कृपया टिप्पणी करें।

+0

मैंने देखा कि कुछ वातावरण में मैंने देखा है कि अगर मैं ':' और मेरे बयानों के बीच कोई जगह नहीं है तो "पृष्ठभूमि-छवि: छवि यूआरएल ('image.png') "; "पृष्ठभूमि-छवि लिखें: image-url ('image.png')" [स्पेस के बाद स्पेस नोट करें: '] –

संबंधित मुद्दे