2013-03-14 5 views
8

मैं grails आवेदन में js और सीएसएस फ़ाइलों को कम करने पर काम कर रहा हूँ। मेरी मूल योजना संसाधनों को कम करने के लिए संसाधन प्लगइन का उपयोग करना है (जवार और प्रदर्शन-यूई पर भी एक नज़र डाली गई थी, लेकिन संसाधन इन दिनों वास्तविक तथ्य मानते हैं)।प्रयास grails अनुप्रयोगों में js और सीएसएस कम करें को

संसाधन वाईयूआई का उपयोग करके व्यक्तिगत सीएसएस फाइलों को कम करना आसान बनाता है, लेकिन हमारे पास 40 से अधिक जेएस फाइलें हैं, जिन्हें हम एक फ़ाइल में जोड़ना चाहते हैं (और फ़ाइलों को भी सही क्रम में संयोजित करने की आवश्यकता होगी) मैं कुछ भी सुझाव है कि संसाधन बॉक्स से बाहर इस का समर्थन करता है नहीं देखा है, इन तरीकों हम अब तक की योजना बनाई है कर रहे हैं:

  1. नई grails taglib एक js और एक बनाने के लिए जे एस और सीएसएस फ़ाइलों को श्रेणीबद्ध में जोड़े सीएसएस फ़ाइल और संसाधन प्लगइन का उपयोग कर minify। एक निष्पक्ष कार्यान्वयन का अर्थ यह होगा कि जब भी पृष्ठ परोसा जाता है, तो yui-minify चलता है (!!) इसलिए हमें किसी भी तरह कैशिंग को इंट्रीक्ट करना होगा।

  2. जेएस और सीएसएस को कम करने के लिए BuildConfig के grails.war.resources का उपयोग करें। इस दौर कैशिंग मुद्दा मिलेगा, के रूप में संसाधन केवल bebuilt और निर्माण समय में न्यूनतम किया गया है, लेकिन रन-युद्ध स्थानीय रूप से परीक्षण करने के लिए grails उपयोग करने के लिए हमें की आवश्यकता होगी, इसलिए किसी भी minification से संबंधित त्रुटियों बाद में देव में जब तक पकड़े नहीं होगा चक्र।

यह एक काफी आम समस्या होनी चाहिए। अन्य लोग क्या कर रहे हैं? मैं उपयोग कर सकते हैं किसी भी अन्य दृष्टिकोण या सर्वोत्तम प्रथाओं के बारे में सुनना चाहूंगा।

उत्तर

1

आप अपने सभी संसाधनों को उसी बंडल का उपयोग करके कर सकते हैं, इसके साथ ही आपके पास केवल एक विलय जेएस होगा। उदाहरण:

main { 
    resource id: 'mainjs', url: 'js/main.js' 
    defaultBundle: 'mybundle' 
} 

second { 
    resource id: 'secondjs', url: 'js/second.js' 
    defaultBundle: 'mybundle' 
} 

डॉक्स के अनुसार:

"समूह" को नक्शाकार एक साथ एक ही प्रकार के संसाधनों फ़ाइलें अपने ग्राहक पृष्ठों का अनुरोध की संख्या को कम करने के लिए कहते हैं।

"बंडल" मैपर संसाधनों पर "बंडल" संपत्ति के मूल्य को देखता है और यदि पाया जाता है, तो संसाधन को एक नए सिंथेटिक समेकित संसाधन में जोड़ देगा।

यह एकत्रित संसाधन ही मानचित्रकारों के माध्यम से संसाधित किया जाता है, तो यह अन्य अनुकूलन आप संसाधन की तरह बंडल एकत्र कर रहा है पर लागू होते हैं के अधीन है।

बंडल स्थिर संसाधन फ़ोल्डर की मूल निर्देशिका में हमेशा होते हैं - जिसका अर्थ है कि बंडल के अंदर फ़ाइलों के संदर्भ पुनः समायोजित होना चाहिए ताकि वे एक ही फाइल को संदर्भित कर सकें। यह csspreprocessor और cssrewriter mappers द्वारा सीएसएस फ़ाइलों के लिए संभव है।

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