{संस्करण} MVC4 बंडल में वाइल्डकार्ड


155

एमवीसी 4 में हमारे पास बंडल हैं। बंडलों को परिभाषित करते समय हम एक फ़ोल्डर में सभी फ़ाइलों के लिए वाइल्डकार्ड्स * का उपयोग कर सकते हैं।

नीचे दिए गए उदाहरण में क्या -{version}मतलब है?

public static void RegisterBundles(BundleCollection bundles)
{
    bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
        "~/Scripts/jquery-{version}.js"));
}

जवाबों:


177

-{version}मूल रूप से एक संस्करण के लिए नक्शे regex , या सटीक होना करने के लिए: (\d+(?:\.\d+){1,3})। उदाहरण के लिए, यदि आप बंडल करते हैं , तो बहुत अधिक हड़पने
का उपयोग करते हुए , इसमें वह भी शामिल होगा जो क्रम को गड़बड़ कर सकता है। लेकिन हर बार जब आप jquery को अपग्रेड करते हैं तो आप अपनी बंडल परिभाषा को अपडेट करने से बच सकते हैं।*jquery*jquery-uijquery-{version}.js

ध्यान देने योग्य अतिरिक्त बातें:

  • {version} केवल पथ के अंतिम भाग के लिए काम करता है - मूल रूप से फ़ाइल नाम - निर्देशिका नहीं।
  • एक ही फ़ोल्डर में jquery के कई संस्करण सभी पकड़े जाएंगे।

2
यह पूर्व के कई संस्करणों के साथ कैसे काम करेगा: फ़ोल्डर में jquery मौजूद है?
पावसुंद

18
यह एक regex है, इसलिए इसमें सभी मैच शामिल होंगे, इसलिए यदि आपके पास एक ही निर्देशिका में कई संस्करण हैं तो आप शायद इसका उपयोग नहीं करना चाहेंगे।
हाओ कुंग

3
ध्यान दें कि {संस्करण} किसी पथ के भीतर काम नहीं करता है। काम पर, हमारे पास पथ में बूटस्ट्रैप संस्करण है (फ़ाइल नाम में नहीं), इसलिए मैं यह करने की कोशिश कर रहा हूं: "~ / सामग्री / पुस्तकालय / बूटस्ट्रैप / {संस्करण} /css/bootstrap.css" लेकिन जब मैं चलता हूं RegisterBundles, मुझे एक ArgumentException मिलती है जो कहती है "निर्देशिका मौजूद नहीं है।"
माइकल नेल्सन

4
निर्देशिका में काम नहीं करने के लिए वोट करें। किसी निर्देशिका में काम करने के लिए कोई समाधान?
Zapnologica

3
संपादित करें: कोई बात नहीं, वे यहाँ स्पष्ट रूप से समझाते हैं! asp.net/mvc/overview/performance/bundling-and-minification धन्यवाद!
जॉन कोटर

12

यह बंडल स्क्रिप्ट नामों में संस्करण संख्याओं को समायोजित करने में सक्षम है। इसलिए jQuery को आपके एप्लिकेशन में एक नए संस्करण में अपडेट करना (NuGet या मैन्युअल रूप से) किसी भी कोड / मार्कअप परिवर्तन की आवश्यकता नहीं है।

बंडलिंग के बारे में अधिक जानकारी के लिए निम्न लिंक देखें: http://weblogs.asp.net/jgalloway/archive/2012/08/16/asp-net-4-5-asp-net-mvc-4-asp-net- वेब पेजों-2-और विजुअल स्टूडियो 2012-वेब-डेवलपर features.aspx


3
जब तक आप यह सुनिश्चित करते हैं कि पुराने संस्करण वास्तव में हटा दिए गए हैं।
त्रिंको

{Version} का उपयोग करते समय मुझे प्राप्त होता है कि Jquery अपरिभाषित है और जब मैं वास्तविक संस्करण से प्रतिस्थापित करता हूं, तो मेरे मामले में 3.1.1 यह ठीक काम करता है।
मार्क रूसेल

0

~/Scripts/jquery-{version}.jsइसमें शामिल है। जब हम पथ में {version} चयनकर्ता निर्दिष्ट करते हैं, तो बंडल सिस्टम jquery फ़ाइल के उच्चतम संस्करण को संदर्भित करने के लिए पर्याप्त स्मार्ट है। इसके अलावा, यह बंडलिंग सिस्टम फ़ाइल के मिनिमाइज्ड वर्जन को लेने के लिए काफी स्मार्ट है, यदि यह निर्धारित पथ पर उपलब्ध है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.