2011-01-05 11 views
5

मेरे पास एक रेल एप्लिकेशन है जो मैं एकाधिक साइटों के लिए उपयोग करना चाहता हूं, प्रत्येक अलग-अलग डिज़ाइनों के साथ।एकाधिक सार्वजनिक फ़ोल्डर्स, सिंगल रेल इंस्टॉलेशन

मैं रेल स्थापना/सार्वजनिक निर्देशिका को कुछ और (गतिशील रूप से अंततः) में बदलना चाहता हूं। हालांकि, मैंने एक समस्या (बग?) निर्देशिकाओं को बदल दिया है ...

मेरी application.rb फ़ाइल में मैं "सार्वजनिक" (चलो कहते हैं "site_one") के अलावा पथ। सार्वजनिक पथ को बदलता हूं। यहां कोड है:

puts paths.public.paths 
paths.public = "site_one" 
puts paths.public.paths 

दो "puts" कमांड डिबगिंग के लिए हैं। अब "रेल एस" चलाएं और आप देखेंगे:

/home/macklin/app/public 
/home/macklin/app/site_one 

यह सत्यापित करता है कि पथ सही ढंग से बदला गया है। हालांकि, कुछ देर बाद ही, रेल निम्न त्रुटि फेंकता है (यदि आप पूर्ण पता लगाने की जरूरत है मुझे पता है):

Exiting 
/usr/lib/ruby/gems/1.8/gems/railties-3.0.3/lib/rails/paths.rb:16:in `method_missing': undefined method `javascripts' for #<Rails::Paths::Path:0x7f422bd76f58> (NoMethodError) from /usr/lib/ruby/gems/1.8/gems/actionpack-3.0.3/lib/action_controller/railtie.rb:47 

मेरा अनुमान है यह javascripts निर्देशिका भले ही यह स्पष्ट रूप से "site_one" फ़ोल्डर में बैठा है नहीं मिल सकता है है ।

क्या कोई जानता है कि मुझे यह क्यों मिल रहा है?

उत्तर

2

डुह। बस स्टाइलशीट और javascripts (मुझे लगता है कि वे मिटा दिया हो जब आप माता-पिता पथ बदल)

paths.public.stylesheets = "site_one/stylesheets" 
paths.public.javascripts = "site_one/javascripts" 
2

मैं जानता हूँ कि इस सवाल का बहुत पुराना है, लेकिन मुझे लगता है मैं रेल 4.2 में इस के लिए एक जवाब मिल गया लगता है के लिए 2 अधिक नियमों जोड़ें।

आप बस अपने config/application.rb में इस लाइन डालने के लिए है:

middleware.use ::ActionDispatch::Static, "#{Rails.root}/another_public_folder_name", index: 'index', headers: config.static_cache_control 

इस रेल द्वारा प्रस्तुत किए जाना /another_public_folder_name में सभी फाइलों में आता है।

इस तरह रेल मानक मानक /public फ़ोल्डर सेट करने के लिए उपयोग करते हैं। मैंने इसे स्रोतों की जांच में पाया:

https://github.com/rails/rails/blob/52ce6ece8c8f74064bb64e0a0b1ddd83092718e1/railties/lib/rails/application/default_middleware_stack.rb#L24

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