2014-09-26 5 views
15

this दस्तावेज़ के अनुसार, public/ निर्देशिका, स्थिर संपत्ति है कि के रूप में वे कर रहे हैं परोसा जा सकता है को शामिल करना चाहिए, जबकि वैकल्पिक app/assets निर्देशिका किसी भी संपत्ति की जरूरत है को शामिल करना चाहिए संसाधित करने के लिए, उदाहरण के लिए , निर्माण चरण के दौरान minify संकलक द्वारा।प्ले फ्रेमवर्क: सार्वजनिक/बनाम एप्लिकेशन/आस्तियों/

एसपीए (सिंगल पेज एप्लिकेशन) के मामले में, संपत्तियों में जावास्क्रिप्ट, सीएसएस और छवि फाइलें शामिल होंगी ... तो क्या इसका मतलब यह है कि छवि फ़ाइलों को public/images में संग्रहीत किया जाना चाहिए जबकि app/assets/ में जावास्क्रिप्ट और सीएसएस फ़ाइलें?

फिर, मुझे एक तृतीय पक्ष मॉड्यूल को एकीकृत करने की भी आवश्यकता है जिसमें मिनीफाइड जावास्क्रिप्ट पुस्तकालयों और गैर-मिनीफाइड जावास्क्रिप्ट फ़ाइलों दोनों शामिल हैं जिन्हें अनुकूलित करने की आवश्यकता है ... मुझे इसे कैसे प्रबंधित करना चाहिए? क्या मुझे मानक, पहले से ही कम से कम संपत्तियों को public/ में रखना चाहिए और अनुकूलित जावास्क्रिप्ट फ़ाइलों को app/assets/javascripts/ पर ले जाना चाहिए?

उत्तर

4

हाँ, आप जो वर्णन सही है। जैसे, जावास्क्रिप्ट है -

Play की ओर से "प्रबंधित" और निर्माण प्रक्रिया के दौरान एक ही फ़ोल्डर में "अप्रबंधित" संपत्ति

(के रूप में डॉक्स https://www.playframework.com/documentation/2.3.x/AssetsCoffeeScript में उल्लेख किया है) लेकिन कामयाब aseets (यानी, app/assets) संकलित हो सामग्री को जोड़ती है jshint के माध्यम से चलाएं और फिर संकलित संस्करणों की प्रतिलिपि बनाई गई है। अप्रबंधित संपत्तियां (यानी, public) कोई प्रसंस्करण के साथ "जैसा है" लिया जाता है।

जाहिर है, आपके स्वयं के जावास्क्रिप्ट को अप्रबंधित public निर्देशिका में डालने का कोई नुकसान नहीं है, लेकिन फिर आप संकलन सुविधाओं का लाभ नहीं उठा रहे हैं जो Play आपको देता है।

एक लाइब्रेरी के लिए जिसमें अनुकूलन योग्य फ़ाइलें हैं, यह निर्भर करता है। मैं निश्चित रूप से minified फ़ाइलों को public में डाल दूंगा, अन्यथा आपको jshint से संकलन त्रुटियां मिल सकती हैं। अनुकूलित फाइलें - अनुकूलन की सीमा पर निर्भर करती हैं। यदि यह केवल छोटे "सेटिंग्स" अनुकूलन की तरह है, तो मैं स्पष्ट रूप से अन्य लाइब्रेरी फ़ाइलों के साथ उन्हें एक साथ रखने पर विचार कर सकता हूं। लेकिन अगर ऐसा कुछ भी है जो सक्रिय विकास में है और इसमें कोड लिखना शामिल है, तो मैं jshint वाक्यविन्यास जांच के लाभ प्राप्त करने के लिए इसे app/assets डाल दूंगा।

इसके अलावा, एक साइड नोट के रूप में, आप अपनी छवियों को app/assets में रख सकते हैं - उन्हें केवल बदलाव के बिना कॉपी किया जाएगा। लेकिन मुझे लगता है कि यह पुनर्निर्माण पर अतिरिक्त अनावश्यक प्रतियों को ट्रिगर करके चीजों को धीमा कर देता है, इसलिए अप्रबंधित निर्देशिका में इन्हें बेहतर तरीके से काम करना पड़ता है।

1

मैं सब कुछ सार्वजनिक फ़ोल्डर में संग्रहीत करता हूं: सीएसएस, जावास्क्रिप्ट, छवियां और यहां तक ​​कि कम फ़ाइलें (यह दस्तावेज इसे ऐप/एसेट फ़ोल्डर में डालने की सलाह देता है)। यह स्वचालित रूप से संपत्ति फ़ोल्डर में कॉपी हो जाएगा और सबकुछ अपेक्षित काम करेगा।

आपकी तीसरी पार्टी जेएस लाइब्रेरी के लिए, यदि यह केवल सादा जेएस (छोटा या नहीं) है, तो इसे सार्वजनिक फ़ोल्डर में रखें। यदि कॉफी स्क्रिप्ट/कम फ़ाइलें हैं, तो दस्तावेज़ों का पालन करने पर विचार करें और इसे सभी संपत्ति फ़ोल्डर में रखें।

अपनी फ़ाइलें सार्वजनिक फ़ोल्डर में हैं, तो अपने टेम्पलेट में इस पंक्तियां जोड़ें:

<link href="@routes.Assets.at("stylesheets/myCss.css")" rel="stylesheet"> 
<script src="@routes.Assets.at("javascripts/myJs.js")" type="text/javascript" defer="defer" ></script> 
संबंधित मुद्दे