Ruby on Rails
एसेट पाइपलाइन
खोज…
परिचय
एसेट पाइपलाइन पाइपलाइन और जावास्क्रिप्ट और सीएसएस परिसंपत्तियों को संक्षिप्त या छोटा करने के लिए एक ढांचा प्रदान करता है। यह इन संपत्तियों को अन्य भाषाओं में लिखने की क्षमता भी जोड़ता है और पूर्व-प्रोसेसर जैसे कि कॉफीस्क्रिप्ट, सास और ईआरबी। यह आपके आवेदन में संपत्ति को अन्य रत्नों से संपत्ति के साथ स्वचालित रूप से संयोजित करने की अनुमति देता है। उदाहरण के लिए, jquery-rails में jquery.js की एक प्रति शामिल है और रेल में AJAX सुविधाओं को सक्षम करता है।
रेक कार्य
डिफ़ॉल्ट रूप से sprockets-rails
को निम्न रेक कार्यों के साथ शिप किया जाता है:
-
assets:clean[keep]
: पुरानी संकलित संपत्ति निकालें -
assets:clobber
: संकलित संपत्ति निकालें -
assets:environment
: परिसंपत्ति का संकलन पर्यावरण को लोड करें -
assets:precompile
:config.assets.precompile
नाम की सभी संपत्तियाँ संकलित करें
घोषणापत्र फ़ाइलें और निर्देश
assets
initalizer ( config/initializers/assets.rb
) कुछ फाइलें स्पष्ट रूप से config/initializers/assets.rb
होने के लिए परिभाषित की गई हैं।
# Precompile additional assets.
# application.coffee, application.scss, and all non-JS/CSS in app/assets folder are already added.
# Rails.application.config.assets.precompile += %w( search.js )
इस उदाहरण में application.coffee
और application.scss
को 'Manifest Files' कहा जाता है। इस फाइल का उपयोग अन्य जावास्क्रिप्ट या सीएसएस परिसंपत्तियों को शामिल करने के लिए किया जाना चाहिए। निम्नलिखित आदेश उपलब्ध हैं:
-
require <path>
:require
रूबी के स्वयं के लिए इसी तरह की निर्देश कार्योंrequire
। यह आपके रास्ते में एक फ़ाइल पर निर्भरता घोषित करने का एक तरीका प्रदान करता है और यह सुनिश्चित करता है कि यह स्रोत फ़ाइल से पहले केवल एक बार लोड हो। -
require_directory <path>
: एक निर्देशिका के अंदर सभी फ़ाइलों की आवश्यकता है। यहpath/*
के समान है क्योंकि यह नेस्टेड निर्देशिकाओं का पालन नहीं करता है। -
require_tree <path>
: निर्देशिका में सभी नेस्टेड फ़ाइलों की आवश्यकता होती है। इसका गोला बराबरpath/**/*
। -
require_self
: इससे पहले कि बाद में किसी भी वर्तमान फ़ाइल के शरीर सम्मिलित करने के लिए कारण बनता हैrequire
निर्देशों। सीएसएस फ़ाइलों में उपयोगी, जहां वैश्विक शैलियों को शामिल करने के लिए इंडेक्स फ़ाइल के लिए यह सामान्य है जिन्हें अन्य निर्भरता लोड होने से पहले परिभाषित करने की आवश्यकता है। -
stub <path>
: किसी फ़ाइल को शामिल करने से हटाएं -
depend_on <path>
: आपको इसमें शामिल किए बिना किसी फ़ाइल पर निर्भरताdepend_on <path>
अनुमति देता है। इसका उपयोग कैशिंग प्रयोजनों के लिए किया जाता है। निर्भरता फ़ाइल में किए गए कोई भी परिवर्तन स्रोत फ़ाइल के कैश को अमान्य कर देंगे।
एक application.scss
Scss फ़ाइल की तरह लग सकता है:
/*
*= require bootstrap
*= require_directory .
*= require_self
*/
एक अन्य उदाहरण application.coffee
फ़ाइल है। यहाँ jquery
और Turbolinks
सहित:
#= require jquery2
#= require jquery_ujs
#= require turbolinks
#= require_tree .
यदि आप CoffeeScript, लेकिन सादे जावास्क्रिप्ट का उपयोग नहीं करते हैं, तो सिंटैक्स होगा:
//= require jquery2
//= require jquery_ujs
//= require turbolinks
//= require_tree .
मूल उपयोग
परिसंपत्ति पाइपलाइन का उपयोग करने के दो बुनियादी तरीके हैं:
विकास मोड में सर्वर चलाते समय, यह स्वचालित रूप से पूर्व-प्रक्रिया करता है और आपकी संपत्ति को तैयार करता है।
उत्पादन मोड में, आप शायद इसे पूर्व-प्रक्रिया के लिए उपयोग करेंगे, संस्करणबद्ध करेंगे, और अपनी संपत्तियों को संपीड़ित और संकलित करेंगे। आप निम्न आदेश चलाकर ऐसा कर सकते हैं:
bundle exec rake assets:precompile