एक .NET MVC4
परियोजना में कैसे काम @Styles.Render
करता है?
मेरा मतलब है, @Styles.Render("~/Content/css")
यह किस फ़ाइल में कॉल कर रहा है?
मेरे पास कोई फ़ाइल या फ़ोल्डर नहीं है जिसे मेरे Content
फ़ोल्डर के अंदर "css" कहा जाता है ।
एक .NET MVC4
परियोजना में कैसे काम @Styles.Render
करता है?
मेरा मतलब है, @Styles.Render("~/Content/css")
यह किस फ़ाइल में कॉल कर रहा है?
मेरे पास कोई फ़ाइल या फ़ोल्डर नहीं है जिसे मेरे Content
फ़ोल्डर के अंदर "css" कहा जाता है ।
जवाबों:
यह उस विशेष बंडल में शामिल फ़ाइलों को कॉल कर रहा है, जो फ़ोल्डर BundleConfig
में कक्षा के अंदर घोषित किया गया है App_Start
।
उस विशेष स्थिति @Styles.Render("~/Content/css")
में कॉल "~ / सामग्री / site.css" पर कॉल कर रहा है।
bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));
*.min.*
संभाल लेगा *.*
।
केस सेंसिटिविटी के लिए देखें। अगर आपके पास फाइल है
/Content/bootstrap.css
और आप अपने बंडल में पुनः निर्देशित करें
.Include ( "~ / सामग्री / Bootstrap.css")
यह सीएसएस को लोड नहीं करेगा।
पार्टी करने में थोड़ी देर हो गई। लेकिन ऐसा लगता है जैसे किसी ने
बंडलिंग और के मिनिफिकेशन का उल्लेख नहीं किया है StyleBundle
, इसलिए ।।
@Styles.Render("~/Content/css")
इसमें कॉल Application_Start()
:
BundleConfig.RegisterBundles(BundleTable.Bundles);
जो बदले में कॉल करता है
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new StyleBundle("~/Content/css").Include(
"~/Content/bootstrap.css",
"~/Content/Site.css"));
}
RegisterBundles()
प्रभावी ढंग से जोड़ती है और minifies bootstrap.css
और Site.css
एक एकल फाइल में,
<link href="/Content/css?v=omEnf6XKhDfHpwdllcEwzSIFQajQQLOQweh_aX9VVWY1" rel="stylesheet">
लेकिन ..
<system.web>
<compilation debug="false" targetFramework="4.6.1" />
</system.web>
केवल जब debug
सेट किया false
जाता है Web.config
।
अन्यथा bootstrap.css
और Site.css
व्यक्तिगत रूप से परोसा जाएगा।
बंडल नहीं है, और ना ही छोटा:
<link href="/Content/bootstrap.css" rel="stylesheet">
<link href="/Content/Site.css" rel="stylesheet">
पोलो मैं कई कारणों से MVC में बंडलों का उपयोग नहीं करेगा। यह आपके मामले में काम नहीं करता है क्योंकि आपको अपने Apps_Start फ़ोल्डर में एक कस्टम बंडलकॉन्फ़िग क्लास सेट करना होगा। इसका कोई मतलब नहीं है जब आप अपने html के सिर में एक शैली जोड़ सकते हैं जैसे कि:
<link rel="stylesheet" href="~/Content/bootstrap.css" />
<link rel="stylesheet" href="~/Content/bootstrap.theme.css" />
आप इन्हें एक Layout.cshtml या आंशिक वर्ग में भी जोड़ सकते हैं जो आपके सभी विचारों से पुकारा जाता है और प्रत्येक पृष्ठ में गिरा दिया जाता है। यदि आपकी शैलियाँ बदल जाती हैं, तो आप आसानी से नाम और पथ को बदल नहीं सकते हैं।
सीएसएस में हार्ड-कोडित लिंक को एक वर्ग में जोड़ना यूआई को अलग करने के पूरे उद्देश्य के साथ टूट जाता है और एप्लिकेशन मॉडल से डिजाइन भी। आप हार्ड कोडेड स्टाइल शीट पाथ को भी c # में प्रबंधित नहीं करना चाहते क्योंकि आप अब अलग-अलग डिवाइस, थीम आदि के लिए "खाल" या अलग स्टाइल मॉडल नहीं बना सकते हैं, जैसे:
<link rel="stylesheet" href="~/UI/Skins/skin1/base.css" />
<link rel="stylesheet" href="~/UI/Skins/skin2/base.css" />
इस प्रणाली और रेजर का उपयोग करके अब आप डेटाबेस या उपयोगकर्ता सेटिंग से स्किन पाथ को बदल सकते हैं और अपनी वेबसाइट के पूरे डिजाइन को केवल गतिशील रूप से बदलकर बदल सकते हैं।
सीएसएस 15 साल पहले का पूरा उद्देश्य साइटों के लिए उपयोगकर्ता-नियंत्रित और एप्लिकेशन-नियंत्रित स्टाइल शीट "खाल" दोनों को विकसित करना था ताकि आप यूआई लुक को स्विच कर सकें और एप्लिकेशन से अलग महसूस कर सकें और डेटा संरचना से स्वतंत्र सामग्री का पुनरुत्पादन कर सकें। .... उदाहरण के लिए एक मुद्रण योग्य संस्करण, मोबाइल, ऑडियो संस्करण, कच्चा xml, आदि।
अब इस "पुराने जमाने", हार्ड # कोड वाली पथ प्रणाली का उपयोग करके C # क्लासेस का उपयोग करके, बूटस्ट्रैप जैसी कठोर शैली और एप्लिकेशन कोड के साथ साइटों के विषयों को मर्ज करके, हम फिर से आगे बढ़ गए हैं कि 1998 में वेबसाइटें कैसे बनाई गई थीं।
minification
उसके साथ बिल्ली करने के लिए ? : s / :(
मैंने एक एमवीसी 3 वेब (मैं मौजूदा समाधान के लिए नया हूं) में बंडलिंग को जोड़ने के लिए आवश्यक सभी चीजें कीं। Styles.Render
मेरे लिए काम नहीं किया। मुझे अंततः पता चला कि मैं बस एक बृहदान्त्र को याद कर रहा था। एक मास्टर पेज में: <%: Styles.Render("~/Content/Css") %>
मैं अभी भी इस बात को लेकर असमंजस में हूं कि (एक ही पेज पर) कोलन के बिना क्यों <% Html.RenderPartial("LogOnUserControl"); %>
काम करता है ।