के साथ सेवा दें, मैं एक रेल ऐप पर काम कर रहा हूं जिसमें बड़ी संख्या में संपत्तियां हैं, जो दुख की कमी नहीं हो सकती हैं। उत्पादन में यह कोई समस्या नहीं है, लेकिन विकास में, प्रति विज़िट पेज पर ~ 20 संपत्ति अनुरोधों को तुरंत एप्लिकेशन सर्वर (जैसे वेब्रिक या पतला) द्वारा सेवा नहीं दी जा सकती है।स्वचालित रूप से संपत्तियों को संकलित करें और उन्हें nginx (विकास)
इसलिए मैंने public/assets
में कुछ भी सेवा देने के लिए विकास में nginx का उपयोग शुरू किया। ध्यान दें कि nginx पूरी तरह से विकास सुविधा है - हम इसे उत्पादन में उपयोग करने का इरादा नहीं रखते हैं। rake assets:precompile
दुर्भाग्य से वहाँ दो समस्याओं (उत्तरार्द्ध सबसे महत्वपूर्ण एक होने हैं
- सेट
config.assets.debug
झूठी - चलाने के लिए:
यह काम करने के लिए मैं सिर्फ दो काम करने के लिए किया था) मेरे सेटअप के साथ:
- प्रत्येक संपत्ति परिवर्तन मैन्युअल रूप से आवश्यक है
rake assets:precompile
फिर से - ऐप सर्वर के लिए नई संकलित संपत्तियों को लेने के लिए, मुझे इसे पुनरारंभ करना होगा।
सही nginx/संपत्ति पाइपलाइन सेटअप क्या है जिसके लिए रेल सर्वर सर्वर प्रीकंपिलेशन के बाद पुनरारंभ करने की आवश्यकता नहीं है?
स्वचालित संकलन का भी स्वागत किया जाएगा।
- प्रत्येक संपत्ति परिवर्तन मैन्युअल रूप से आवश्यक है
क्या आपने यूनिकॉर्न और प्यूमा जैसे अन्य रेल सर्वरों की कोशिश की है? फ़ाइल परिवर्तनों की निगरानी करने के लिए आप [गार्ड] (https://github.com/guard/guard) का उपयोग कर सकते हैं और 'रेक संपत्तियां: प्रीकंपाइल' चला सकते हैं और अपने सर्वर को पुनरारंभ कर सकते हैं। गार्ड के लिए – max
+1। यूनिकॉर्न/प्यूमा विशिष्ट HTTP सर्वर नहीं हैं (विशेष रूप से यूनिकॉर्न जो डिजाइन द्वारा तेज़ क्लाइंट मानते हैं) इसलिए यदि संभव हो तो मैं संपत्ति के लिए nginx का उपयोग करना पसंद करूंगा। – vemv
इस तरह की ध्वनि की तरह आपने संपत्ति पाइपलाइन को बढ़ा दिया है - रेल वास्तव में विकास में स्थिर संपत्तियों की सेवा के लिए नहीं बनाया गया है - यह तैनाती पर किया जाना चाहिए। तो सर्वर को पुनरारंभ करना बहुत मुश्किल हो जाएगा। तो आप उदाहरण के लिए अपनी संपत्ति को उबालने के लिए उदाहरण के लिए ग्रंट या ब्रोकोली का उपयोग कर देख सकते हैं। – max