Rails Asset Pipeline guide आपको config/application.rb
में उपयोग करने के लिए निर्देश देता है लेकिन मुझे इस बिंदु पर अनुरोध के सबडोमेन तक पहुंच नहीं है।रेलवे 3.1 में वाइल्डकार्ड सबडोमेन के आधार पर स्प्राकेट्स में संपत्ति खोज पथ कैसे जोड़ूं?
मैं अनुरोध के सबडोमेन के आधार पर एक अतिरिक्त पथ (केवल वर्तमान अनुरोध के लिए) को प्रीपेड करने में सक्षम होना चाहता हूं।
मेरा आवेदन विशिष्ट विवरण
यह एक बुनियादी सीएमएस अनुप्रयोग है। रूट domain.com
होस्ट मानक नियंत्रक/दृश्य प्रतिपादन और डिफ़ॉल्ट संपत्ति पथ के साथ व्यवस्थापकीय भाग को संभालता है।
subdomain.domain.com
पर अनुरोध subdomain
पर आधारित साइट को प्रस्तुत करता है। यह को before_filter
में कॉल करता है और केवल वर्तमान अनुरोध के लिए Rails.root.join('vendor/sites/[subdomain]/templates')
जोड़ता है।
मैं अनुरोध होस्ट [subdomain].domain.com
पर स्प्राकेट्स खोज पथ पर Rails.root.join('vendor/sites/[subdomain]/assets')
को प्रीपेड करने में सक्षम होना चाहता हूं।
संपादित
मैं Sprockets::Environment
के लिए सिर्फ एक mixin में छोड़ने समाप्त हो गया है कि call विधि अधिलेखित कर देता है:
module SiteAssetsResolver
def call(env)
begin
# prepend path based on subdomain (from env)
super # Sprockets::Server#call
ensure
# remove path based on subdomain
end
end
end
MyApp::Application.assets.extend(SiteAssetsResolver)
संपत्ति पाइपलाइन वास्तव में उत्पादन में प्रत्येक अनुरोध को आपकी संपत्ति को संकलित करने के लिए नहीं है। यह विकास के लिए बहुत अच्छा है लेकिन आपको उन्हें उत्पादन के लिए स्थैतिक फाइलों में संकलित करना चाहिए। इस प्रकार आपको इसके लिए अपना सिस्टम विकसित करना होगा (शायद एक नियंत्रक जो सीएसएस फाइलों को सेवा देता है?) या अपने ऐप्स को अलग से बनाएं। – thomasfedb