2010-10-20 14 views
12

मैं bamboo-mri-1.9.2 स्टैक का उपयोग करके अपना हेरोकू ऐप चलाने के लिए प्रयास कर रहा हूं। बेशक यह रूबी 1.9.2 पर स्थानीय रूप से ठीक चल रहा है। लेकिन जब उत्पादन पर यह config.ru को क्रियान्वित करने पर स्टार्टअप के दौरान दुर्घटनाओं इस तरह दिखता है जो:हेरोकू ऐप शुरू करने में विफल रहता है - 'आवश्यकता': लोड करने के लिए ऐसी कोई फ़ाइल नहीं - sinatratestapp (LoadError)

require 'sinatratestapp' 
run Sinatra::Application 

मेरे .gems फ़ाइल:

sinatra --version '>= 1.0' 

और sinatratestapp.rb के रूप में आवेदन ही:

require 'rubygems' 
require 'sinatra' 

get '/' do 
    "Hello from Sinatra on Heroku!" 
end 

है कि मुझे प्रोजेक्ट में मिला है और हेरोोकू पर इसे चलाने की कोशिश कर रहा है परिणाम:

<internal:lib/rubygems/custom_require>:29:in `require': no such file to load -- sinatratestapp (LoadError) 
     from <internal:lib/rubygems/custom_require>:29:in `require' 
     from config.ru:1:in `block (3 levels) in <main>' 
     ... 
-----> Your application is requiring a file that it can't find. 

     Most often this is due to missing gems, or it could be that you failed 
     to commit the file to your repo. See http://docs.heroku.com/gems for 
     more information on managing gems. 

     Examine the backtrace above this message to debug. 

मैंने गाइड के रूप में ऐसा करने की कोशिश की है लेकिन रुबी नोब के रूप में मेरी परीक्षाओं के परिणामस्वरूप कुछ भी नहीं हुआ है।

+0

में .gems फ़ाइल का कोई उल्लेख नहीं था, मैं समस्या को दोहराने में सक्षम था। मैं Heroku के लिए एक समर्थन अनुरोध भेजने की सलाह देते हैं। – ponzao

उत्तर

38

हेरोकू समर्थन अनुरोध और this question की सहायता से मुझे समाधान मिला।

रूबी 1.9.2 स्वचालित रूप से "।" $ LOAD_PATH में। इसे काम करने के लिए, require 'sinatratestapp' के बजाय require './sinatratestapp' बताकर config.ru संशोधित करें।

+1

स्थानीय रूप से काम करने का कारण यह स्पष्ट तथ्य था कि मैंने स्थानीय रूप से चलते समय config.ru का उपयोग नहीं किया था। – hleinone

+0

धन्यवाद, बिल्कुल वही समस्या थी। इच्छा फोरमैन आदि विंडोज के लिए एलर्जी नहीं था! –

+1

config.ru का परीक्षण करने के लिए स्थानीय रूप से 'rackup' का उपयोग करके ऐप शुरू करें। – Morgan

-1

मेरी सिनात्रा परियोजनाओं में एक ही लेआउट है और इसके बारे में देखो, केवल अंतर यह है कि मेरी .gems फ़ाइल में मैं एक संस्करण निर्दिष्ट नहीं करता हूं।

मेरी .gems इस तरह दिखता है:

sinatra 
hpricot 
+0

मदद नहीं की। क्या आप 'बांस-एमआरआई-1.9.2' स्टैक पर भी हैं? – hleinone

1

मेरा मानना ​​है कि जब सिनात्रा के साथ प्रयोग कर मैं इस समस्या में पड़ गए। रूबी 1.9 में डिफ़ॉल्ट रूप से पथ में वर्तमान निर्देशिका शामिल नहीं है, इसलिए आपको हमारे config.ru फ़ाइल में require 'sinatratestapp' को स्पष्ट रूप से अवश्य देना होगा।

3

आप निम्न config को अपनी config.ru फ़ाइल में डाल सकते हैं और यह समस्या को भी ठीक करेगा। यह भी आवेदन विस्तृत ले जाने के लिए जा रहा है, तो यह वापस पूर्व 1.9.2 व्यवहार की भावना लाना होगा:

$ LOAD_PATH.unshift (Dir.getwd)

नोट: मैं Heroku पर परीक्षण करने में असमर्थ था

मेरी समस्या: एक गड़बड़ी, config.ru, या config/unicorn.rb के बिना sinatra आवेदन (ruby < 1.9.2) के साथ ठीक से व्यवहार करने के लिए यूनिकॉर्न प्राप्त करना।

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

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