हाय मैं वर्तमान में System.Web.Optimization के साथ एएसपीएनटी एमवीसी 4 आरसी का उपयोग कर रहा हूं। चूंकि मेरी साइट को उपयोगकर्ता वरीयता के अनुसार स्थानीयकृत करने की आवश्यकता है, इसलिए मैं jquery.globalize प्लगइन के साथ काम कर रहा हूं।एक स्थानीय स्क्रिप्टबंडल समाधान
मैं स्क्रिप्टबंडल कक्षा को उप-वर्ग करना चाहता हूं और System.Threading.Thread.CurrentThread.CurrentUICulture
के अनुसार फ़ाइलों को बंडल करना चाहता हूं। यही कारण है कि इस प्रकार दिखाई देगा:
bundles.Add(new LocalizedScriptBundle("~/bundles/jqueryglobal")
.Include("~/Scripts/jquery.globalize/globalize.js")
.Include("~/Scripts/jquery.globalize/cultures/globalize.culture.{0}.js",
() => new object[] { Thread.CurrentThread.CurrentUICulture })
));
उदाहरण के लिए यदि ui संस्कृति है "en-GB" मैं निम्न फ़ाइलों को उठाया जा चाहते हैं (बेशक न्यूनतम किया गया और यदि संभव हो तो एक स्क्रिप्ट फ़ाइल या जब तक अच्छी तरह से कैश की गई वर्तमान में संस्कृति परिवर्तन)।
- "~/स्क्रिप्ट/jquery.globalize/globalize.js"
- "~/स्क्रिप्ट/jquery.globalize/वैश्वीकृत-en-GB.js" < - अगर इस फाइल पर मौजूद नहीं है सेवर फाइल सिस्टम ग्लोबलइज-एन.जेएस पर फ़ॉलबैक।
मैं की तरह कुछ के साथ विधि शामिल करें ओवरलोडिंग की कोशिश की निम्नलिखित लेकिन यह अभ्यस्त काम है क्योंकि यह अनुरोध पर लेकिन आवेदन के स्टार्टअप पर मूल्यांकन नहीं किया गया है।
public class LocalizedScriptBundle : ScriptBundle
{
public LocalizedScriptBundle(string virtualPath)
: base(virtualPath) {
}
public Bundle Include(string virtualPathMask, Func<object[]> getargs) {
string virtualPath = string.Format(virtualPathMask, getargs());
this.Include(virtualPath);
return this;
}
}
धन्यवाद
Constantinos
हाँ इस पाठ्यक्रम का सच है। लेकिन ऐसा लगता है, जब एक जेएस या सीएसएस फ़ाइल सर्वर की तरफ बदलती है तो बंडल को अद्यतित होने के लिए फिर से मूल्यांकन किया जाता है (आंतरिक रूप से फाइलसिस्टम वाटर का उपयोग कर)। मुझे इस कारण को नहीं देखा जा रहा है कि उदाहरण के लिए यूआई संस्कृति बदलने जैसी एप्लिकेशन लाइफसाइक्ल में अन्य घटनाओं को ध्यान में रखकर इस व्यवहार को ओवरराइड नहीं किया जा सकता है। – cleftheris
हां, बंडल प्रतिक्रियाओं में कैश प्रविष्टि को अमान्य करने के लिए कैश निर्भरता सेटअप होता है जब बंडल में फ़ाइलें बदलती हैं। हमने अपने todo सूची पर कैशिंग व्यवहार को विस्तारित करने के लिए खोल दिया है, लेकिन मुझे यकीन नहीं है कि हम इसे कब प्राप्त करेंगे। –