2013-02-19 22 views
7

मेरे एमवीसी अनुप्रयोग को तैनात करते समय, .NET 4.5 ढांचा & को मेरे सीएसएस को छोटा कर रहा है। हालांकि, परिणामस्वरूप फ़ाइल खाली है, इसलिए सीएसएस नियम लागू नहीं हैं। क्रोम में, मुझे Resource interpreted as Stylesheet but transferred with MIME type text/plain चेतावनी मिलती है। आईई 9 में, मुझे CSS was ignored due to mime type mismatch चेतावनी मिलती है।बंडल सीएसएस तैनाती के बाद प्रदर्शित नहीं हो रहा है ... एएसपी.नेट एमवीसी 4

यह वही मेरी BundleConfig में है

bundles.Add(
    new StyleBundle("~/Content/bootstrap").Include(
     "~/Content/bootstrap/bootstrap-responsive.css", 
     "~/Content/bootstrap/bootstrap-editable.css", 
     "~/Content/bootstrap/FileUpload.css")); 

यहाँ मेरी लेआउट सिर है:

<head> 
    <meta charset="utf-8" /> 
    <meta http-equiv="x-ua-compatible" content="IE=Edge" /> 
    <title>@ViewBag.Title</title> 
    <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" /> 
    <meta name="viewport" content="width=device-width" /> 
    <link href="@ViewBag.StyleUrl" rel="stylesheet" type="text/css" /> 
    @Styles.Render("~/Content/bootstrap") 
    <script src="~/scripts/libs/modernizr/modernizr-2.5.3.js" type="text/javascript"></script> 
</head> 

अतिरिक्त स्टाइलशीट एक गतिशील लोड हमारे व्यवस्थापक उपकरण में config के आधार पर स्टाइलशीट के लिए है।

जब मैं इसे स्थानीय रूप से चलाता हूं, या यदि मैं डीबग = "सत्य" सेट करता हूं, तो मुझे अपनी व्यक्तिगत फाइलें मिलती हैं & सब कुछ दिखता है जैसा दिखता है। अगर मैं इन्हें अपने लेआउट पेज पर हार्डकोड करता हूं, तो वे ठीक प्रदर्शित करते हैं। मैंने आईआईएस & सीएसएस के लिए सही एमआईएमई प्रकार देखा है (जो समझ में आता है कि हार्डकोडेड मान काम करते हैं)। मैंने यह सुनिश्चित करने के लिए भी जांच की है कि "स्टेटिक कंटेंट" भूमिका सेवा स्थापित है, क्योंकि मैं अपने गुगल में भी आया था।

कोई विचार?

+0

आप अपने सीएसएस दिखा सकते हैं html में शामिल हैं? – NunoCarmo

उत्तर

22

बंडल नाम के रूप में फाइल सिस्टम पर फ़ोल्डर का नाम एक ही है,

bundles.Add(
new StyleBundle("~/Content/bootstrapBundle").Include(
    "~/Content/bootstrap/bootstrap-responsive.css", 
    "~/Content/bootstrap/bootstrap-editable.css", 
    "~/Content/bootstrap/FileUpload.css")); 

यानी इतने पास समूह का नाम एक फ़ोल्डर का नाम या फ़ाइल

नहीं है करने के लिए अपने बंडल बदलें
+2

अच्छा पकड़, धन्यवाद! –

+2

Awsome !! मेरा दिन बचाया – Nexus23

+0

मैंने ऐसा किया लेकिन फिर सभी सीएसएस शैलियों को गड़बड़ कर दिया गया। डिफ़ॉल्ट टेम्पलेट का उपयोग करना, उदाहरण के लिए, होम ड्रॉपडाउन मेन्यू ने काम करना बंद कर दिया, क्लिक करके कुछ भी नीचे नहीं छोड़ दिया। –

0

यदि आप डॉट डिफेंडर जैसे उत्पाद का उपयोग कर रहे हैं, तो यह आपको यह त्रुटि स्थिति भी दे सकता है। जब आप बंडल करते हैं, तो कैश बस्टर पैरामीटर में डबल डैश होते हैं, तो डॉट डिफेंडर जैसे उत्पाद को एक संभावित एसक्यूएल इंजेक्शन हमले के रूप में देखा जाता है और अनुरोध/प्रतिक्रिया के साथ हस्तक्षेप समाप्त होता है।

इस बारे में जाने का एक तरीका (मान लीजिए कि आप उस सॉफ़्टवेयर को बंद नहीं कर सकते हैं) केवल .dotdefenderbuster {} जैसी अपनी मूल सीएसएस फ़ाइल में कुछ जोड़ना है।

मुझे यह देखने के लिए जांचना होगा कि बंडलिंग एल्गोरिदम को कैश बस्टर कुंजी को प्रभावित करने के लिए अद्यतन किया गया है या नहीं।

उदाहरण के लिए: http://www.foo.com/MyApp/Content/themes/MyApp/css?v=J9DBkvB7JWRo80eUukDOe3--6DAtA1

1

एक ही समस्या थी। मेरा समाधान बंडल का अमान्य नाम था (इसमें '_' या '।' शामिल था)।

bundles.Add(
new StyleBundle("~/Content/bootstrap_Bundle").Include(
    "~/Content/bootstrap/bootstrap-responsive.css", 
    "~/Content/bootstrap/bootstrap-editable.css", 
    "~/Content/bootstrap/FileUpload.css")); 

होना ही था: नाम सादे पाठ की जरूरत है

bundles.Add(
new StyleBundle("~/Content/bootstrapBundle").Include(
    "~/Content/bootstrap/bootstrap-responsive.css", 
    "~/Content/bootstrap/bootstrap-editable.css", 
    "~/Content/bootstrap/FileUpload.css"));