2011-09-18 17 views
18

मैं रेल विकास में नया हूं और यह हेरोोकू में मेरी पहली तैनाती है। जब मैं अपने आवेदन निष्पादित (तैनाती के बाद) कोई त्रुटि हुई:रेल पर रेक रूक रेक संपत्ति: प्रीकंपाइल त्रुटि

2011-09-18T21:05:54+00:00 app[web.1]: Completed 500 Internal Server Error in 10ms 
2011-09-18T21:05:54+00:00 app[web.1]: 
2011-09-18T21:05:54+00:00 app[web.1]: ActionView::Template::Error (application.css isn't precompiled): 

मैं इस googled और पाया मैं अपने संपत्ति precompile करने के लिए है, लेकिन जब यह करने के लिए कोशिश कर रहा एक अन्य त्रुटि पाया गया कि:

$ bundle exec rake assets:precompile RAILS_ENV=production 
rake aborted! 
No such process - /usr/lib/ruby/gems/1.8/gems/pg-0.11.0/lib/pg_ext.so 

(See full trace by running task with --trace) 

मुझे इस मुद्दे के लिए कोई समाधान नहीं मिला है। क्या कोई ऐसा व्यक्ति है जिसने इसका सामना किया है, इस समस्या को हल करने का तरीका पता है?

+1

अधिक जानकारी प्राप्त करने के लिए इसे '--trace' के साथ चलाने का प्रयास करें। यहां से त्रुटि यह दिखती है कि यह पीजी (पोस्टग्रेस) मणि से आ रहा है, इसलिए ऐप शुरू होने के लिए आपके डेटाबेस कनेक्शन में समस्या हो सकती है। –

+0

मैं --trace साथ चलाने के लिए और इस मुद्दे को मिला: $ बंडल कार्यकारी रेक संपत्ति: --trace precompile RAILS_ENV = उत्पादन ** आह्वान संपत्ति: precompile (first_time) ** निष्पादित आस्तियों: precompile रेक निरस्त! ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? (/usr/lib/ruby/gems/1.8/gems/jquery-rails-1.0.14/vendor/assets/javascripts/jquery-ui.min.js) कार्य: TOP => संपत्ति: प्रीकंपाइल (--trace के साथ कार्य चलाने के द्वारा पूर्ण ट्रेस देखें) – fabiogasparro

+0

क्या आप अपने ** application.css ** या ** application.css से कोड पेस्ट कर सकते हैं। [Scss | sass] ** फ़ाइल कृपया? – stephenmurdoch

उत्तर

6

मुझे समस्या भी मिली। लेकिन आप

rake assets:precompile RAILS_ENV=production 

स्थानीय में, और सार्वजनिक/संपत्तियों के साथ heroku को धक्का दे सकते हैं। यह हल हो गया है।

35

मैं भी इस मुद्दे में पड़ गए और मैं निम्न कार्य करके इसका समाधान नहीं: अप config/environments/production.rb

खुला और यह सुनिश्चित करें निम्नलिखित विकल्प true के लिए सेट है:

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

तब चलाएँ:

rake assets:precompile --trace RAILS_ENV=production 

आशा है कि इससे मदद मिलती है!

~ केविन

+0

यह मेरे लिए एक ही मुद्दा तय करता है - आपको धन्यवाद !! – ellawren

+0

मदद नहीं करता है। 'Config.assets.compile = true' सेट करना मेरी मदद नहीं करता है। मुझे 'TypeError मिलता है: ऑब्जेक्ट इस प्रॉपर्टी या विधि का समर्थन नहीं करता है और रेक कार्य कुछ भी उपयोगी नहीं करता है। – Green

+0

# 'config.assets.precompile' और' config.assets.version' कॉन्फ़िगर/प्रारंभकर्ता/assets.rb – cloudsurfin

3

मैं नए Cedar stack उपयोग करने के लिए सिफारिश करेंगे। यह रेलवे 3.1 के साथ तैनाती और समग्र नाटकों के लिए आपके लिए संपत्ति का प्रीकंपाइल करता है, हालांकि आपको अपने ऐप को काम करने के लिए थोड़ा सा कॉन्फ़िगर करना होगा: अपने जेमफाइल में कुछ रत्न जोड़ें और एक प्रोफाइल बनाएं। लेकिन यह अभी भी एक आसान तरीका है।

1

ओह, यह एक आसान है। आपका PG मणि आपके रेक कार्य को तोड़ रहा है। आप इसे ठीक करने के लिए लंबे मार्ग पर जा सकते हैं, या प्रीकंपाइल चलाने के लिए आप इसे अपने रत्न से बाहर टिप्पणी करने का प्रयास कर सकते हैं।

1

हाँ पीजी मणि के ऊपर पोस्ट किए गए सिम्पलटन की समस्या समस्या का कारण बन रही है। इमो बेहतर पीजी मणि को अपने रत्न में उत्पादन के अंदर ले जाने और चलाने के लिए एक बेहतर समाधान होगा; बंडल --without उत्पादन स्थापित तो फिर तुम, config.assets.compile = true उपयोग config.serve_static_assets = true

पहला विकल्प सही नहीं है की

0

इसके बजाय समस्याओं के बिना रेक कार्य चलाने के लिए सक्षम होना चाहिए, क्योंकि यह आपके सर्वर बताता है की सेवा करने के लिए वापस जाने के लिए ऐप/संपत्ति फ़ोल्डर।

+0

अस्वीकरण चेतावनी: इसकी भूमिका को स्पष्ट करने के लिए कॉन्फ़िगरेशन विकल्प 'config.serve_static_assets' का नाम बदलकर 'config.serve_static_files' कर दिया गया है (यह केवल' सार्वजनिक 'फ़ोल्डर में सबकुछ की सेवा करने में सक्षम बनाता है और संपत्ति पाइपलाइन से संबंधित नहीं है)। रेल 5.0 में 'serv_static_assets' उपनाम हटा दिया जाएगा। कृपया तदनुसार अपनी कॉन्फ़िगरेशन फ़ाइलों को माइग्रेट करें। –

1

मुझे एक ही त्रुटि संदेश था। मेरा मुद्दा गलत तरीके से निर्दिष्ट फ़ॉन्ट यूआरएल था।

इस उत्तर का बड़ा हिस्सा दिखाता है कि मैंने इसे कैसे निकाला।

हालांकि मैं जब

RAILS_ENV=production SECRET_KEY_BASE=xxx rake assets:precompile --trace 

चलाने पर संपत्ति यह असफल रहा था की राह नहीं मिला इसके बजाय मैं इस स्टैक ट्रेस था:

** Invoke assets:precompile (first_time) 
** Invoke assets:environment (first_time) 
** Execute assets:environment 
** Invoke environment (first_time) 
** Execute environment 
** Execute assets:precompile 
rake aborted! 
NoMethodError: undefined method `[]' for nil:NilClass 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sprockets-3.7.0/lib/sprockets/sass_processor.rb:283:in `sprockets_context' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sprockets-3.7.0/lib/sprockets/sass_processor.rb:124:in `asset_path' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sprockets-3.7.0/lib/sprockets/sass_processor.rb:142:in `asset_url' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sprockets-3.7.0/lib/sprockets/sass_processor.rb:214:in `font_url' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sass-3.4.22/lib/sass/script/tree/funcall.rb:143:in `_perform' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sass-3.4.22/lib/sass/script/tree/node.rb:58:in `perform' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sass-3.4.22/lib/sass/script/tree/list_literal.rb:63:in `block in _perform' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sass-3.4.22/lib/sass/script/tree/list_literal.rb:63:in `map' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sass-3.4.22/lib/sass/script/tree/list_literal.rb:63:in `_perform' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sass-3.4.22/lib/sass/script/tree/node.rb:58:in `perform' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sass-3.4.22/lib/sass/tree/visitors/perform.rb:397:in `visit_prop' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sass-3.4.22/lib/sass/tree/visitors/base.rb:36:in `visit' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sass-3.4.22/lib/sass/tree/visitors/perform.rb:160:in `block in visit' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sass-3.4.22/lib/sass/stack.rb:79:in `block in with_base' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sass-3.4.22/lib/sass/stack.rb:115:in `with_frame' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sass-3.4.22/lib/sass/stack.rb:79:in `with_base' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sass-3.4.22/lib/sass/tree/visitors/perform.rb:160:in `visit' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sass-3.4.22/lib/sass/tree/visitors/perform.rb:433:in `block (2 levels) in visit_rule' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sass-3.4.22/lib/sass/tree/visitors/perform.rb:433:in `map' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sass-3.4.22/lib/sass/tree/visitors/perform.rb:433:in `block in visit_rule' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sass-3.4.22/lib/sass/tree/visitors/perform.rb:181:in `with_environment' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sass-3.4.22/lib/sass/tree/visitors/perform.rb:431:in `visit_rule' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sass-3.4.22/lib/sass/tree/visitors/base.rb:36:in `visit' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sass-3.4.22/lib/sass/tree/visitors/perform.rb:160:in `block in visit' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sass-3.4.22/lib/sass/stack.rb:79:in `block in with_base' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sass-3.4.22/lib/sass/stack.rb:115:in `with_frame' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sass-3.4.22/lib/sass/stack.rb:79:in `with_base' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sass-3.4.22/lib/sass/tree/visitors/perform.rb:160:in `visit' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sass-3.4.22/lib/sass/tree/visitors/base.rb:52:in `block in visit_children' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sass-3.4.22/lib/sass/tree/visitors/base.rb:52:in `map' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sass-3.4.22/lib/sass/tree/visitors/base.rb:52:in `visit_children' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sass-3.4.22/lib/sass/tree/visitors/perform.rb:169:in `block in visit_children' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sass-3.4.22/lib/sass/tree/visitors/perform.rb:181:in `with_environment' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sass-3.4.22/lib/sass/tree/visitors/perform.rb:168:in `visit_children' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sass-3.4.22/lib/sass/tree/visitors/base.rb:36:in `block in visit' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sass-3.4.22/lib/sass/tree/visitors/perform.rb:188:in `visit_root' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sass-3.4.22/lib/sass/tree/visitors/base.rb:36:in `visit' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sass-3.4.22/lib/sass/tree/visitors/perform.rb:159:in `visit' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sass-3.4.22/lib/sass/tree/visitors/perform.rb:8:in `visit' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sass-3.4.22/lib/sass/tree/root_node.rb:36:in `css_tree' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sass-3.4.22/lib/sass/tree/root_node.rb:20:in `render' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sass-3.4.22/lib/sass/engine.rb:281:in `render' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sprockets-3.7.0/lib/sprockets/sass_compressor.rb:48:in `call' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sprockets-3.7.0/lib/sprockets/sass_compressor.rb:28:in `call' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sprockets-3.7.0/lib/sprockets/processor_utils.rb:75:in `call_processor' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sprockets-3.7.0/lib/sprockets/processor_utils.rb:57:in `block in call_processors' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sprockets-3.7.0/lib/sprockets/processor_utils.rb:56:in `reverse_each' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sprockets-3.7.0/lib/sprockets/processor_utils.rb:56:in `call_processors' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sprockets-3.7.0/lib/sprockets/loader.rb:134:in `load_from_unloaded' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sprockets-3.7.0/lib/sprockets/loader.rb:60:in `block in load' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sprockets-3.7.0/lib/sprockets/loader.rb:317:in `fetch_asset_from_dependency_cache' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sprockets-3.7.0/lib/sprockets/loader.rb:44:in `load' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sprockets-3.7.0/lib/sprockets/cached_environment.rb:20:in `block in initialize' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sprockets-3.7.0/lib/sprockets/cached_environment.rb:47:in `load' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sprockets-3.7.0/lib/sprockets/base.rb:66:in `find_asset' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sprockets-3.7.0/lib/sprockets/base.rb:73:in `find_all_linked_assets' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sprockets-3.7.0/lib/sprockets/manifest.rb:142:in `block in find' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sprockets-3.7.0/lib/sprockets/legacy.rb:114:in `block (2 levels) in logical_paths' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sprockets-3.7.0/lib/sprockets/path_utils.rb:228:in `block in stat_tree' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sprockets-3.7.0/lib/sprockets/path_utils.rb:212:in `block in stat_directory' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sprockets-3.7.0/lib/sprockets/path_utils.rb:209:in `each' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sprockets-3.7.0/lib/sprockets/path_utils.rb:209:in `stat_directory' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sprockets-3.7.0/lib/sprockets/path_utils.rb:227:in `stat_tree' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sprockets-3.7.0/lib/sprockets/legacy.rb:105:in `each' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sprockets-3.7.0/lib/sprockets/legacy.rb:105:in `block in logical_paths' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sprockets-3.7.0/lib/sprockets/legacy.rb:104:in `each' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sprockets-3.7.0/lib/sprockets/legacy.rb:104:in `logical_paths' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sprockets-3.7.0/lib/sprockets/manifest.rb:140:in `find' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sprockets-3.7.0/lib/sprockets/manifest.rb:185:in `compile' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sprockets-rails-3.1.1/lib/sprockets/rails/task.rb:68:in `block (3 levels) in define' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sprockets-3.7.0/lib/rake/sprocketstask.rb:147:in `with_logger' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sprockets-rails-3.1.1/lib/sprockets/rails/task.rb:67:in `block (2 levels) in define' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/rake-11.2.2/lib/rake/task.rb:248:in `block in execute' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/rake-11.2.2/lib/rake/task.rb:243:in `each' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/rake-11.2.2/lib/rake/task.rb:243:in `execute' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/rake-11.2.2/lib/rake/task.rb:187:in `block in invoke_with_call_chain' 
/Users/smithd98/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/monitor.rb:214:in `mon_synchronize' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/rake-11.2.2/lib/rake/task.rb:180:in `invoke_with_call_chain' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/rake-11.2.2/lib/rake/task.rb:173:in `invoke' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/rake-11.2.2/lib/rake/application.rb:152:in `invoke_task' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/rake-11.2.2/lib/rake/application.rb:108:in `block (2 levels) in top_level' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/rake-11.2.2/lib/rake/application.rb:108:in `each' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/rake-11.2.2/lib/rake/application.rb:108:in `block in top_level' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/rake-11.2.2/lib/rake/application.rb:117:in `run_with_threads' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/rake-11.2.2/lib/rake/application.rb:102:in `top_level' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/rake-11.2.2/lib/rake/application.rb:80:in `block in run' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/rake-11.2.2/lib/rake/application.rb:178:in `standard_exception_handling' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/rake-11.2.2/lib/rake/application.rb:77:in `run' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/rake-11.2.2/exe/rake:27:in `<top (required)>' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/bin/rake:23:in `load' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/bin/rake:23:in `<main>' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/bin/ruby_executable_hooks:15:in `eval' 
/Users/smithd98/.rvm/gems/ruby-2.3.1/bin/ruby_executable_hooks:15:in `<main>' 

मैं थूक से बाहर करने के लिए मणि संशोधित फ़ाइल नाम

subl /Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sprockets-3.7.0/lib/sprockets/sass_processor.rb:124:in 

इस

की तरह
def asset_path(path, options = {}) 
    path = path.value 
    puts path 
    puts '123' 

    path, _, query, fragment = URI.split(path)[5..8] 
    puts '126' 
    path  = sprockets_context.asset_path(path, options) 
    puts '128' 
    query = "?#{query}" if query 
    puts '130' 
    fragment = "##{fragment}" if fragment 
    puts '132' 
    Autoload::Sass::Script::String.new("#{path}#{query}#{fragment}", :string) 
    end 

फिर जब मैं भागा

RAILS_ENV=production SECRET_KEY_BASE=xxx rake assets:precompile --trace 

मैं

** Invoke assets:precompile (first_time) 
** Invoke assets:environment (first_time) 
** Execute assets:environment 
** Invoke environment (first_time) 
** Execute environment 
** Execute assets:precompile 
fonts/OpenSans-Light.ttf 
123 
126 
rake aborted! 
NoMethodError: undefined method `[]' for nil:NilClass 
/Users/smithd98/.rvm/gems/ruby-2.3.1/gems/sprockets-3.7.0/lib/sprockets/sass_processor.rb:283:in `sprockets_context' 
...the rest of the stack trace is the same... 

तो मैं इस मुद्दे को एक फ़ॉन्ट इस तरह निर्दिष्ट किया गया था किया गया था पता चला है:

.btn-rect { 
    font-family: 'OpenSans-Light'; 
    src:font-url('fonts/OpenSans-Light.ttf') format('truetype'); 
} 

और होना चाहिए इस तरह है:

.btn-rect { 
    font-family: 'OpenSans-Light'; 
} 
+1

धन्यवाद डेविड, मैंने डिबगिंग के आपके तरीकों का पालन किया और अंततः समस्या पाई! किसी भी व्यक्ति के लिए जो 'sass_processor.rb पर नेविगेट करने में परेशानी है: 124' आप' मणि ओपन स्पॉकेट्स 'कमांड का उपयोग कर सकते हैं, फिर फ़ाइल पर नेविगेट कर सकते हैं। फिर इसे सहेजने के लिए, ': w! Sudo tee%>/dev/null' का उपयोग करें –

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