2011-09-03 18 views
9

मैं एक विशिष्ट निर्देशिका जैसे "/ r" के तहत चलाने के लिए रेल 3.1 एप्लिकेशन को कैसे कॉन्फ़िगर कर सकता हूं?एक उपनिर्देशिका में रेल 3.1 ऐप को कैसे तैनात करें

मैं config.ru में करने की कोशिश की:

map '/r' do 
    run Debtor::Application 
end 

लेकिन है कि बस लौटे "नहीं मिलाः/r"

यह काम करने के लिए मैं एक दायरे में सभी मार्गों को संलग्न करने के लिए किया था प्राप्त करने के लिए:

scope '/r' do 
    #routes 
end 

और निम्न पंक्ति विन्यास के लिए/applcation.rb

config.assets.prefix = "/r/assets" 
जोड़ने के लिए 0

और मेरी jquery ui css फ़ाइलों को/स्टाइलशीट से/r/स्टाइलशीट में स्थानांतरित करने के लिए।

यह बहुत जटिल लगता है। क्या कोई आसान तरीका नहीं है? और मेरी config.ru सेटिंग क्यों काम नहीं कर रही है?

मेरा उपयोग केस एक वर्डप्रेस सर्वर के लिए रेल संचालित AJAX बैकएंड होना है।

उत्तर

6

क्या आप यात्री के तहत चल रहे हैं?

फिर रेल्स बेसूरी शायद आप जो चाहते हैं।

https://www.phusionpassenger.com/library/deploy/apache/deploy/ruby/#deploying-an-app-to-a-sub-uri

यात्री के तहत नहीं चल रहा है, तो दिखाने के लिए आप क्या कर रहे हैं के तहत तैनात अपने प्रश्न अपडेट करें।

+0

प्रतिक्रिया के लिए धन्यवाद। हाँ, मैं यात्री का उपयोग कर रहा हूँ। मैं एक सरल समाधान की तलाश में हूं। – Peder

+0

आपकी अपाचे कॉन्फ़िगरेशन फ़ाइल में 1 लाइन से अधिक सरल? मुझे यकीन नहीं है कि आप उससे ज्यादा सरल हो सकते हैं। क्षमा करें मैं उलझन में हूँ। – Doon

+0

मैं इसे केवल 1 लाइन कॉन्फ़िगरेशन के साथ कैसे कर सकता हूं? ऐसा लगता है कि मुझे दस्तावेज़ रूट में उप-पथ से रेल परियोजना प्रोजेक्ट सार्वजनिक निर्देशिका में एक सिम्लिंक बनाने की आवश्यकता है। – Peder

3

यहां अपाचे में एक उपनिर्देशिका में रेल 3.1 ऐप को तैनात करने का तरीका बताया गया है, जो config.action_controller.relative_url_root को प्रतिस्थापित करता है जो अब मौजूद नहीं है।

config/routes.rb में:

scope 'my_subdir' do 
    # all resources and routes go here 
end 

अपने अपाचे विन्यास फाइल में:

Alias /my_subdir /var/www/my_subdir/public 
<Location /my_subdir> 
    SetEnv RAILS_RELATIVE_URL_ROOT "/my_subdir" 
    PassengerAppRoot /var/www/my_subdir 
</Location> 

और यह काम करना चाहिए, स्वचालित रूप से /my_subdir करने के लिए अपने सभी परिसंपत्तियों ओर इशारा करते हुए भी शामिल है।

+0

क्या यह वास्तव में सार्वजनिक निर्देशिका में संपत्तियों और फ़ाइलों के लिए काम करेगा? – Peder

+0

यह तब काम करेगा जब आपकी संपत्ति 'ऐप/संपत्ति' फ़ोल्डर में होंगी। लेकिन यह _should_ सार्वजनिक निर्देशिका में संपत्तियों और फ़ाइलों के लिए भी काम करता है क्योंकि 'एलियास' कीवर्ड आपके सार्वजनिक फ़ोल्डर में सीधे फ़ोल्डर को इंगित करता है। अगर यह काम करता है तो कृपया मुझे बताएं। –

4

मेरे लिए क्या काम किया गया उप-यूरी (/ जानकारी) के आवेदन के 'सार्वजनिक' फ़ोल्डर (मेरे सर्वर पर किसी अन्य उपयोगकर्ता के तहत सेटअप,/home/otheruser/current/public) के लिए प्रतीकात्मक लिंक बना रहा था।

Alias /info /home/myapp/current/public 
<Location /info> 
    PassengerAppRoot /home/myapp/current 
    RackEnv production 
    RackBaseURI /info 
</Location> 

कोई दायरे वाले मार्गों, कोई संपत्ति उपसर्ग विन्यास:

ln -s /home/myapp/current/public /home/mysite/public_html/info 

तब मैं साइट के लिए VirtualHost प्रविष्टि के अंदर इस विन्यास डाला।

+0

अभी तक का सबसे अच्छा जवाब! अगर मैं कर सकता तो मैं फिर से यह जवाब दूंगा :) – Ali

+0

दाएं .. यह सबसे साफ समाधान है। धन्यवाद :) – n3rve

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