2012-06-08 6 views
12

पर रूबी में एसेट पाइपलाइन के लिए गाइड, यह कहता हैछवियों की सेवा के लिए मुझे संपत्ति पाइपलाइन का उपयोग क्यों करना चाहिए?

सार्वजनिक तहत किसी भी संपत्ति आवेदन या वेब सर्वर द्वारा स्थिर फ़ाइलों के रूप में प्रस्तुत की जाएगी। आपको उन फ़ाइलों के लिए ऐप/संपत्तियों का उपयोग करना चाहिए जो को सेवा से पहले कुछ प्री-प्रोसेसिंग से गुजरना चाहिए।

http://guides.rubyonrails.org/asset_pipeline.html

मेरे लिए, यह कहना है कि छवियों सार्वजनिक निर्देशिका में रखा जाना चाहिए, क्योंकि वे मेरी वेब सर्वर द्वारा स्थिर परोसा जा सकता है और कोई पूर्व प्रसंस्करण की आवश्यकता है।

क्या आपकी छवियों को assets/ में डालने के फायदे हैं?

+0

@ gmoore- खुद को एक ही चीज़ पर आश्चर्यचकित करना। एक और बात मैं MD5 -hashed फ़ाइल नाम सोच था छवि फ़ाइल को कुछ हद तक के नाम, अपनी छवियों को Google द्वारा अनुक्रमित हो रही के संदर्भ में हानिकारक हो सकता है जो धुंधला कर देता है? – Yarin

उत्तर

9

संपत्ति प्रीकंपाइल छवि फ़ाइल नामों के लिए अद्वितीय हैश मान जोड़ता है, जो सर्वर पर कैश या समाप्ति सेटिंग्स के बावजूद उपयोगकर्ताओं को इसका नवीनतम संस्करण प्राप्त करने की अनुमति देता है। यह तब उपयोगी होता है जब आप वेबसाइट डिज़ाइन में छवियों को बदलना चाहते हैं।

आप छवियों के लिए /assets/images का उपयोग नहीं करना चाहते हैं, जो बदलने की संभावना नहीं है (जैसे उपयोगकर्ता अपलोड)।

+0

के लिए यह सच है कि आप ठीक ढंग से उपयोगकर्ता अपलोड करने के लिए '/ आस्तियों/images' का उपयोग नहीं करना चाहते हैं मिल गया। हालांकि यह अभी भी अपनी सभी छवियों के लिए इसका उपयोग करने के लिए अच्छा अभ्यास है, भले ही आप उन्हें बदलने की उम्मीद न करें (उदाहरण के लिए लोगो)! अलग-अलग फ़ोल्डर्स का उपयोग करके बिना किसी फायदे के अपने सेटअप को अधिक जटिल बनाएं। – jokklan

4

क्योंकि यह संपत्ति पाइपलाइन की बहुमुखी प्रतिभा को नुकसान पहुंचाएगा।

छवियों के साथ संपत्ति पाइप लाइन के माध्यम से प्रस्तुत किया जा रहा है, अगर आप संपत्ति पाइपलाइन (उदाहरण के लिए, यह S3 पर फ़ाइलें अपलोड किया है) को बदल आप तो कुछ अन्य काम के माध्यम से अपनी छवियों को सिंक करने के लिए होगा।

अन्य, गहरे कारण हो सकते हैं, लेकिन यही कारण है कि मुझे रोक दें।

संपादित करें: साइड नोट: उत्पादन में संपत्तियों के लिए धन्यवाद:/संपत्ति/से प्रीकंपाइल सब कुछ सार्वजनिक से परोसा जाएगा।

+0

सार्वजनिक से सेवा की गई प्रीकंपील्ड संपत्तियों के बारे में अच्छा बिंदु। – gmoore

+0

@DanielEvans - क्या आप "संपत्ति पाइपलाइन को बदलकर" का अर्थ समझ सकते हैं? मैं एस 3 पर अपलोड करने के बारे में आपके द्वारा दिए गए उदाहरण को समझ नहीं पाया। – Yarin

+1

@Yarin निश्चित: यह आम बात है कि आपके आवेदन की स्थिर संपत्ति सार्वजनिक के अलावा कहीं और से की जाती है। उदाहरण के लिए, आपकी तैनाती प्रक्रिया संपत्तियों को सीडीएन या अमेज़ॅन एस 3 पर धक्का दे सकती है। आप संपत्ति पाइपलाइन को बढ़ा सकते हैं ताकि रेक संपत्तियां: प्रीकंपाइल उन संपत्तियों को रखती है जहां आप उन्हें चाहते हैं। हालांकि, अगर आपके पास सार्वजनिक रूप से संग्रहीत संपत्तियां हैं/तो आपको मौजूदा रत्न/स्क्रिप्ट को मैन्युअल रूप से समायोजित करना पड़ सकता है जो आपके लिए यह काम करता है। –

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