मैं बस रेल 3.1 से परिचित हो रहा हूं, और मैंने कुछ समय पुराना प्रोजेक्ट अपडेट करने और काम करने की कोशिश कर रहा है कि नई परिसंपत्ति पाइपलाइन विकास मोड बनाम उत्पादन में कैसे व्यवहार करती है।उत्पादन से पहले रेल संपत्ति परिसंपत्ति पाइपलाइन में आप त्रुटियों को कैसे पकड़ते हैं?
डिफ़ॉल्ट config.assets.precompile
सेटिंग केवल application.css और application.js आशीर्वाद देता है, इरादा है कि सब कुछ एक भी स्टाइलशीट और एक एकल जावास्क्रिप्ट फ़ाइल के रूप में पेश की जानी चाहिए साथ।
जाहिर है
यहाँ स्थिति मैं अपने सैंडबॉक्स परियोजना के साथ जब उत्पादन के लिए जा रहा में भाग है जब हम उस नहीं करना चाहते, तो हम है कि config चर में सूची में आइटम जोड़ सकते हैं स्थितियों रहे हैं ...:
- विकास में साइट ब्राउज़ की, देखा कि सब कुछ काम कर रहा था। संपत्तियों को अलग फाइलों के रूप में जोड़ा गया था और साइट सही ढंग से प्रदर्शित की गई थी।
- साइट को मेरे सर्वर पर अपलोड किया गया, और इसे उत्पादन में काम करने की कोशिश की। पहली त्रुटि यह कह रही थी कि "ie.css" (एक सशर्त स्टाइलशीट) precompiled नहीं है। (मैं सफारी में था और इस स्टाइलशीट को भी डाउनलोड नहीं किया जाएगा: पृष्ठ को प्रस्तुत करने से पहले त्रुटि
stylesheet_link_tag
सहायक से उठाई गई थी।) - रण
rake assets:precompile
और फिर से प्रयास किया। - अपमानजनक आइटम
config.assets.precompile
पर जोड़ा गया और फिर से प्रयास किया गया। - जब तक यह किसी अन्य संपत्ति त्रुटि को हिट नहीं करता तब तक त्रुटि को क्रैश कर दिया गया।
- गोटो 3.
यह कैसे पता करने के लिए जानते हुए भी नहीं, मैं चारों ओर हलकों में कई बार जब तक मैंने सोचा कि मैं सभी परिसंपत्तियों मिल गया और साइट उत्पादन में प्रतिपादन किया गया था। फिर मैंने इसे एमएसआईई में करने की कोशिश की और एक और त्रुटि मारा 500: "belated_png_fix.js" सशर्त रूप से लोड किया जा रहा था, और तब तक यह फसल नहीं हुआ।
तो मेरे सवाल, परीक्षण और त्रुटि या एकीकरण परीक्षण पर एक भारी निर्भरता के अलावा अन्य है, मैं कैसे भविष्यवाणी कर सकते हैं कि मेरी साइट बाहर बम से उड़ाने की नहीं जा रहा है जब संपत्ति पाइपलाइन पता चलता है कि कुछ स्टाइलशीट या जावास्क्रिप्ट नहीं जोड़ा गया था precompile सूची में?
मैं भी उत्सुक हूं कि क्यों लापता स्टाइलशीट संपत्ति को पूरे पृष्ठ को केवल मांग पर संकलित करने या उस संपत्ति के अनुरोध के 404 की सेवा करने के बजाय 500 त्रुटि करने का कारण बनना चाहिए। क्या यह "जानबूझकर विफल" के लिए एक जानबूझकर डिजाइन है?
मैंने हाल ही में एक पुरानी ऐप को संपत्ति पाइपलाइन में परिवर्तित कर दिया और इसमें कोई समस्या नहीं थी। यह समझने में मुझे कुछ समय लगा कि सबकुछ एक साथ कैसे काम करता है। अपने प्रश्न का उत्तर देने के लिए, क्या आप अपने सीएसएस और जेएस फाइलों की सामग्री दिखा सकते हैं, विशेष रूप से आवश्यक बयानों? मुझे यह भी रूचि है कि आप इसे देखने से कैसे बुला रहे हैं। आखिर में वे सभी ऐप/संपत्ति में हैं या आप lib/संपत्ति और विक्रेता/परिसंपत्तियों का भी उपयोग कर रहे हैं? –