asp.net mvc - एएसपी.नेट एमवीसी फ्रेमवर्क 4.5 सीएसएस बंडल होस्टिंग पर काम नहीं करता है




asp.net-mvc asp.net-mvc-4 (7)

मुझे उस समस्या (403 निषिद्ध) त्रुटि के साथ एक ही समस्या है। मेरे मामले में कारण मेरे संगठन में प्रॉक्सी सर्वर मेरी सीएसएस फ़ाइल को ब्लॉक करता है। सीएसएस फ़ाइल नाम ब्लॉक नियमों में से एक से मेल खाता है।

मैं एमवीसी 4 में लिखे गए ऐप बंदरगाह पर एक ऐप चला रहा हूं।

सीएसएस फाइलों का एक बंडल काम नहीं करता है। डीबग मोड में मेरे स्थानीय कंप्यूटर में मैं ऐप का कोड देखता हूं और मैं फाइलें देखता हूं। ऐप काम के रूप में काम करता है।

<link href="/Content/css/home/basic-jquery-slider.css" rel="stylesheet"/>
<link href="/Content/css/home/Home.css" rel="stylesheet"/>

जब मैं एपर्बर में ऐप अपलोड करता हूं तो मुझे कोड में बंडल दिखाई देता है लेकिन ऐप काम नहीं करता है।

<link href="/Content/css/home?v=zhVOIpUNuvCOZhJyBcQWpMlozayor4te6k-pM29wHqI1" rel="stylesheet"/>

जब मैं href में उस लिंक को ब्राउज़ करता हूं तो मुझे 403 मिलते हैं - निषिद्ध: एक्सेस अस्वीकार कर दी जाती है।

इसका निवारण कैसे करें?


मुझे पता चला कि फ़ाइल bootstrap.css सामग्री फ़ोल्डर में नहीं था, इसलिए मैंने इसे संकुल में देखा और चिपकाया .. यह काम किया!


मेरा अनुमान है कि आपके ऐप में डिस्क पर पथ Content/css मौजूद है। इस मामले में आईआईएस अनुरोध को संभालेगा, एमवीसी नहीं।

सुनिश्चित करें कि बंडल के लिए वर्चुअल पथ (स्टाइलबंडल कन्स्ट्रक्टर का पैरामीटर) फ़ाइल सिस्टम में किसी फ़ोल्डर से मेल नहीं खाता है।

टिप्पणियों से:

"बंडल बनाने के दौरान पालन करने के लिए एक अच्छा सम्मेलन बंडल नाम में उपसर्ग के रूप में" बंडल "को शामिल करना है। इससे संभावित रूटिंग संघर्ष को रोका जा सकेगा।"


मेरे साथ भी हुआ, जब मैंने AppHarbor पर अपने एएसपी.नेट एमवीसी ऐप को तैनात करने की कोशिश की।

मेरे नाम के साथ स्टाइलशीट बंडल था

@Styles.Render("~/Content/bootstrap")

और फ़ोल्डर संरचना थी

-- सामग्री

सामग्री \ बूटस्ट्रैप \ ...

बंडल नाम को "~/Content/bootstrap-css" content "~/Content/bootstrap-css" बदलकर मेरी समस्या को फिर से बदल दिया गया।


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


यह समस्या डिफ़ॉल्ट रूप से .NET है। अनुरोधों को "प्रक्रिया" नहीं करता है जिसमें .js या .css एक्सटेंशन है।

इसके लिए दो फिक्स हैं (आपको केवल एक करने की आवश्यकता है)

ए) बंडल नाम से एक्सटेंशन निकालें। (अनुशंसित) यह अनुरोध को संसाधित करने और इसे BundleModule के माध्यम से चलाने के लिए .NET का कारण बन जाएगा।

बी) इसे system.web सर्वर अनुभाग में अपने web.config में जोड़ें जो BundleModule के माध्यम से .js और .css अनुरोधों को चलाने के लिए .NET का कारण बन जाएगा।

<modules runAllManagedModulesForAllRequests="true">
  <remove name="BundleModule" />
  <add name="BundleModule" type="System.Web.Optimization.BundleModule" />
</modules>

रे मोरो के लिए चिल्लाना, जिन्होंने वास्तविक कारण निकाला और मेरे ब्लॉग पर इसे मेरे साथ साझा किया: http://blog.cdeutsch.com/2012/11/fixing-404-errors-for-aspnet-mvc-apps.html


403 त्रुटि हल हो गई। यहां 403 त्रुटि के लिए एक विस्तृत स्पष्टीकरण और समाधान है।
समाधान सीएसएस बंडल के लिए प्रदर्शित किया गया है। हालांकि यह जावास्क्रिप्ट पर भी लागू होता है।

http://www.mvccentral.net/Story/Details/articles/kahanu/stylebundle-403-error-solved

संक्षेप में, सुनिश्चित करें कि आभासी पथ [Script | Style]Bundle("~/content/[script | css]") [Script | Style]Bundle("~/content/[script | css]") फ़ाइल सिस्टम में एक फ़ोल्डर से मेल नहीं खाता है (उदाहरण के लिए C:\approot\Content\[script | css] ) इसके बजाय [Script | Style]Bundle("~/content/[scriptDiff | cssDiff]") [Script | Style]Bundle("~/content/[scriptDiff | cssDiff]")





asp.net-optimization