2013-02-06 14 views
16

हमारे पास एक रेल ऐप है जिसे मैंने हाल ही में रेल 3.0 से रेल 3.2 तक अपडेट किया है। यह ऐप कई क्लाइंट सेवाएं प्रदान करता है। प्रत्येक क्लाइंट के लिए इसे अनुकूलित करने के लिए, हमारे पास निर्देशिका app/themes है। वहाँ submodules हैं। प्रत्येक सबमिशन में locales/en.yml, views/layouts, views/controller_name, आदि जैसी चीजें शामिल हैं। हम थीम दृश्य जोड़ने के लिए prepend_view_path का उपयोग करते हैं, और I18n.load_path स्थानीय में जोड़ने के लिए उपयोग करते हैं। हम संपत्ति पाइपलाइन का उपयोग करने की सोच रहे हैं ताकि हम ग्राहक निर्देशिका के सभी मिश्रण को सार्वजनिक निर्देशिका से बाहर रख सकें, और इसे प्रत्येक विषय में निहित रखें।संपत्ति पाइपलाइन पथ में फ़ोल्डर जोड़ें?

क्या कोई तरीका है कि मैं गतिशील रूप से रेल को बता सकता हूं कि कौन सा विषय/विषय-नाम/संपत्ति फ़ोल्डर मैं चाहता हूं? हम कौन से विषय सक्रिय हैं सेट करने के लिए सेटिंग्स तर्क का उपयोग करते हैं। तो अगर मैं विषय "गूगल" करने के लिए सेट है, ApplicationController तो फ़ाइलों पथ से लोड करता है:

app/themes/google/locales/*.yml 
app/themes/google/views 

मैं ऐसा करने में सक्षम होने के लिए क्या चाहते हैं मैनिफ़ेस्ट फ़ाइल है,

app/themes/google/assets/stylesheets/application.css 

लेआउट के लिए आसानी से सुलभ हैं, जैसे आप लगाएंगे एक app/views/layouts फ़ाइल में:

= stylesheet_link_tag "application" 

वहाँ एक रास्ता मैं यह कर सकता है? या क्या हमें संपत्तियों को वास्तविक संपत्ति निर्देशिका में मैन्युअल रूप से स्थानांतरित करने की आवश्यकता है?

+0

नियंत्रक प्रति संपत्ति लोड करने के लिए एक तरीका होता है, लेकिन यह नहीं है कि आप क्या देख रहे हैं। आप उस संपत्ति-पाइपलाइन (उत्पादन में) प्रीकंपाइल पर विचार कर सकते हैं और '/ public' में एक ही फ़ाइल (क्रमशः' application.js' और 'application.css') में सभी संपत्तियों को अनुकूलित कर सकते हैं। उद्देश्य कॉल को कम करना है संपत्ति लाने के लिए सर्वर। –

उत्तर

15

application.rb में ऐसा करने में सक्षम था:

require "#{Rails.root}/app/models/settings.rb" 
config.assets.paths << "#{Rails.root}/app/themes/#{Settings.theme}/assets/stylesheets" 
config.assets.paths << "#{Rails.root}/app/themes/#{Settings.theme}/assets/images" 
config.assets.paths << "#{Rails.root}/app/themes/#{Settings.theme}/assets/javascripts" 
+0

'config.assets.paths << "# {Rails.root}/app/assets/fonts" ', या आपके द्वारा जोड़े गए लाइन जोड़ने के बाद, क्या कोई आदेश है जिसे चलाने की आवश्यकता है? जिन फ़ॉन्ट्स का मैं उपयोग करने की कोशिश कर रहा हूं वे काम नहीं कर रहे हैं। यह एक नया सवाल शुरू करने के बजाय यहां एक टिप्पणी जोड़ने के लिए एक समान सवाल था। –

+0

क्या उनका एक कारण है कि आप संपत्ति पाइपलाइन में फ़ॉन्ट जोड़ रहे हैं? अभी भी उन्हें सार्वजनिक रूप से रख सकते हैं और उन्हें इस तरह संदर्भित कर सकते हैं, जैसे कि 3.0 में पहले की किसी अन्य सार्वजनिक फ़ाइल की तरह। – agmcleod

+0

हां, मैं अपने प्रोजेक्ट में ज़र्ब फाउंडेशन आइकनों को मर्ज करने की कोशिश कर रहा हूं, और विभिन्न प्रकारों और .css स्टाइलशीट्स की चार फ़ॉन्ट फ़ाइलें हैं, अब तक, मुझे लगता है कि मैंने अभी तक नींव.css फ़ाइल में रखा है ज़र्ब नींव का उपयोग करना। –

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