2012-04-30 11 views
5
rake assets:precompile 

एप्लिकेशन-be2b8c92856ffacee861d9e9c2935e3e जैसी नई फ़ाइल बनाता है, लेकिन पुराना नाम एप्लिकेशन-c730047bc2a5cf3a706aa3a9f998ab77.css है। इसका कभी और उपयोग नहीं किया जाएगा। क्या बदली गई संपत्तियों को साफ़ करने का कोई तरीका है? मैं सभी संपत्तियों को हटाना नहीं चाहता हूं, क्योंकि यह उन सभी फ़ाइलों के लिए ओवरकिल जैसा लगता है जो छेड़छाड़ नहीं कर रहे हैं (और यह गिट में खराब दिखता है)प्रयुक्त संपत्तियों को साफ़ करने का तरीका क्या है?

उत्तर

2

मूल फ़ाइल के md5 के आधार पर फ़ाइल नाम नहीं है?

इसका मतलब है कि आप पूरी निर्देशिका को हटा सकते हैं, फिर rake assets:precompile चलाएं और चूंकि फ़ाइलों की सामग्री समान होगी, तो आप उसी फ़ाइल नाम (उसी सामग्री के साथ) समाप्त कर देंगे। तो आपके git status उन 'नई' फ़ाइलों को नहीं देख पाएंगे क्योंकि वे पहले से ही अपने स्टोर में मौजूद फ़ाइलों के समान हैं। यह केवल ध्यान देगा कि कुछ फाइलें हटा दी गई हैं।

उदाहरण के लिए:

$ ls 
application-<md5-old>.css 
application-<md5-current>.css 
$ rm * 
$ rake assets:precompile 
$ ls 
application-<md5-current>.css 
$ git status 
deleted: application-<md5-old>.css 
2

वास्तव में आप आम तौर पर कुछ पुराने संपत्ति संस्करणों क्योंकि चारों ओर वे कुछ है कि कैश किया गया है, या एक पेज उपयोगकर्ता के ब्राउज़र में खुला छोड़ दिया द्वारा संदर्भित किया जा सकता है रखना चाहिए। कल्पना करें कि क्या उपयोगकर्ता संपत्ति को शुद्ध करने से पहले आपके पृष्ठ पर एक सेकंड का दौरा करता है। एचटीएमएल लोड हो गया है और जब ब्राउज़र बाद में घोषित स्टाइलशीट्स और स्क्रिप्ट को पुनर्प्राप्त करने का प्रयास करता है, तो वे चले गए हैं। हो सकता है कि यह आपके लिए एक कोने केस है, लेकिन यदि HTML सामग्री कैश से आती है (उदाहरण के लिए हो सकता है कि आप सामग्री को याद कर रहे हों), यह अभी भी कुछ दिनों बाद हो सकता है। पुरानी सामग्री को बीच में कहीं भी कैश किया जा सकता है, लेकिन आप इन संपत्तियों के साथ उपयोग किए जाने वाले आक्रामक कैशिंग के साथ भी उस पर भरोसा नहीं कर सकते हैं।

जो आप वास्तव में चाहते हैं, उसके बाद, कुछ नवीनतम संस्करणों को आसपास रखना और वास्तव में पुरानी सामग्री को हटाना है। और यह वही है जो brake assets:clean करता है, जो आप प्रीकंपलिंग से पहले हर बार चला सकते हैं। यहां the source दिखा रहा है कि यह 2 बैकअप बनाए रखता है।

यदि आप इसे "2" से 0 में बदल सकते हैं, तो यह सचमुच इस प्रश्न का उत्तर देगा। मुझे यकीन नहीं है कि उस मान को कैसे बदला जाए, हालांकि यह उस फ़ंक्शन में पैरामीटर है, इसलिए इसे कॉन्फ़िगर करने योग्य होना चाहिए। लेकिन परवाह किए बिना, यह वैसे भी एक अच्छा विचार नहीं है।

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

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