CSS, Images, JS IIS में लोड नहीं हो रहा है


126

मेरे सभी अनुप्रयोग ठीक काम कर रहे थे लेकिन अचानक IIS के अंतर्गत सभी साइटें css, छवियाँ, स्क्रिप्ट लोड नहीं कर रही हैं। यह लॉगिन पृष्ठ पर रीडायरेक्ट करता है।

अगर मैं लॉगिन करता हूं तो यह ठीक काम करता है। जैसे mysite.com/Account/LogOn?ReturnUrl=%2fpublic%2fimages%2ficons%2f41.png

मेरी स्थानीय मशीन पर यह लॉगिन के बिना ठीक काम करता है।


गलत टैगिंग, असली सवाल नहीं ...
रेनाटास एम।

3
टैग किए गए संस्करण में रोलबैक क्योंकि मुझे लगता है कि मुझे पता है कि इस व्यवहार के कारण क्या है और टैग प्रासंगिक हैं। यदि नहीं, तो मैं बंद करने के लिए मतदान करूंगा।
टिम मेदोरा

यह इस वेब विन्यास के साथ कोई समस्या नहीं है, मैंने सभी उत्तरों की कोशिश की है। मुझे लगता है कि यह आईआईएस के साथ समस्या है क्योंकि सभी साइटें ठीक काम कर रही थीं, इससे पहले कि मैं एक आवेदन को लागू करता हूं, यह सब iis पर प्रभाव डालता है
इमरान रशीद

@ImranRashid - क्या यह साइट IIS में किसी अन्य साइट से सेटिंग विरासत में मिली है?
टिम मेडोरा 9:12

@ टिम मडोरा - नहीं सर, यह दूसरी साइट से विरासत में नहीं मिला है।
इमरान राशिद

जवाबों:


185

समस्या यह हो सकती है कि IIS स्टैटिक कंटेंट परोस नहीं रहा है, जिसे आप यहाँ सेट कर सकते हैं: यहाँ छवि विवरण दर्ज करें

स्रोत: http://adilmughal.com/blog/2011/11/iis-7-not-loading-css-and-image/

विंडोज 10:

विंडोज़ उपरोक्त संवाद के 10 संस्करण


2
मेरे पास एक समान मुद्दा था, यह एहसास हुआ कि यह एक स्थापना समस्या थी, लेकिन स्थिर सामग्री को सक्षम करने से लगता है कि यह तय हो गया है!
ife labolz

5
यह मेरे बेकन को बचाया, आपको लगता है कि यह डिफ़ॉल्ट रूप से सक्षम किया गया था, लेकिन विंडोज़ 10 पर यह नहीं है।
जस्टिन

3
लंगड़ा यह डिफ़ॉल्ट रूप से जाँच नहीं है।
रायल्वेलिस

3
@RayLoveless मुझे लगता है कि लंगड़ा क्या है कि MVC इस IIS सुविधा को MVC में काम करने के लिए स्थिर सामग्री के लिए सक्षम होने पर एक कठिन निर्भरता लेता है। मुझे लगता है कि उन्हें इतना युग्मित नहीं होना चाहिए। शायद .NET कोर इसे ठीक कर देगा। : पी
मैट कोकज

2
यहाँ हम फिर से आ रहे हैं, उसी जवाब से बचाया जा रहा है, पिछली बार से 2 साल बाद।
एरिक वू

176

जब मैं Windows Server 2012 R2 पर IIS 8.5 में ASP.Net 4.5 में अपना वेब अनुप्रयोग स्थापित करता हूं, तो मुझे एक ही समस्या थी, एक अनधिकृत पृष्ठ CSS, JS और छवियाँ लोड नहीं करेगा।

  1. मेरे पास स्थिर सामग्री की भूमिका थी
  2. मेरा वेब अनुप्रयोग IIS के wwwroot फ़ोल्डर में था और सभी विंडोज़ फ़ोल्डर अनुमतियाँ बरकरार थीं (डिफ़ॉल्ट वाले, जिनमें IIS_IUSRS भी शामिल है)
  3. मैंने CSS, JS और छवियों वाले सभी फ़ोल्डरों के लिए प्राधिकरण जोड़ा।
  4. मेरे पास एक विंडोज़ शेयर पर वेब एप्लिकेशन फ़ोल्डर था, इसलिए मैंने @ imran-rashid द्वारा सुझाए गए साझाकरण को हटा दिया

फिर भी, समस्या को हल करने के लिए कुछ भी नहीं लग रहा था। फिर अंत में मैंने अनाम उपयोगकर्ता की पहचान ऐप पूल आइडेंटिटी पर सेट करने की कोशिश की और यह काम करना शुरू कर दिया।

ऑथेंटिकेशन फीचर पर क्लिक करें अनाम प्रमाणीकरण संपादित करें ऐप पूल पहचान में बदलें

मैंने कुछ घंटों के लिए अपना सिर पीटा और उम्मीद है कि इस प्रतिक्रिया से मेरे साथी डेवलपर्स के लिए पीड़ा से बचा जा सकेगा।

मैं वास्तव में जानना चाहूंगा कि यह क्यों काम कर रहा है। कोई विचार?


1
यह भी मेरे लिए काम किया। मेरा मानना ​​है कि ऐसा इसलिए है क्योंकि "विशिष्ट उपयोगकर्ता" के पास फ़ोल्डर स्थान की अनुमति नहीं थी, जहां एप्लिकेशन पूल की पहचान करता है।
dcinadr

4
कुछ घंटे ? यह मुझसे ज्यादा 4. धन्यवाद भगवान tooks यह मुझे मदद की :)
टिटो

3
Wwwroot फ़ोल्डर को साझा करने के बाद मुझे अचानक यह समस्या मिली। आपके समाधान ने इसे ठीक कर दिया। इसे जोड़ने के लिए समय निकालने के लिए धन्यवाद, और विस्तार के लिए।
संसाधन

1
लेग अंत! बहुत बहुत धन्यवाद
डेविड

1
यह दूसरी बार है जब मुझे आपके पोस्ट की खोज करनी थी, b / c इसने मुझे अब दो बार बचाया। अगर मैं कर सकता तो मैं तुम्हें 100x अपवोट करता। Umbraco का उपयोग कर रहा था - मेरे स्थानीय IIS को दस्तावेज़ \ Visual Studio 2013 \ Projects का उपयोग करके सेट किया गया - जोड़ा गया CPUName\IIS_IUSRSऔर फिर भी लोड नहीं होगा। एक बार फिर धन्यवाद!
रॉब स्कॉट

18

मेरे पास एक समान त्रुटि थी, मेरा कंसोल इस तरह दिखता था:

त्रुटि

मेरी समस्या यह थी कि मैं एक उप फ़ोल्डर में अपनी साइट चला रहा था क्योंकि कंपनी एक शीर्ष डोमेन और कोई उप डोमेन का उपयोग कर रही थी। ऐशे ही:

host.com/app1

host.com/app2

मेरा कोड ऐसी लिपियों को शामिल करने के लिए देखा गया है, जो लोकलहोस्ट पर ठीक काम करती है लेकिन app1 या app2 में नहीं:

<link rel="stylesheet" type="text/css" href="/Content/css/font-awesome.min.css" />

~Src में एक टिल्ड साइन जोड़ा और फिर सब कुछ काम किया:

<link rel="stylesheet" type="text/css" href="~/Content/css/font-awesome.min.css" />

~बनाम की व्याख्या /:

  • / - साइट रूट
  • ~/ - आवेदन की रूट निर्देशिका

/साइट का रूट वापस करेगा ( http://host.com/),

~/आवेदन की जड़ वापस कर देगा ( http://host.com/app1/)।


1
वोट देना। मुझे यह समस्या हो रही थी, ऐप स्टेज पर लोड नहीं हो रहा था बल्कि उत्पादन पर लोड हो रहा था। मैं @ Url.Content () का उपयोग ~ / के साथ भी करता हूं। उत्पादन पर परीक्षण नहीं किया गया है, लेकिन मुझे लगता है कि यह काम करेगा
क्रोस

17

अपने web.config से staticContent सेक्शन को हटाने का प्रयास करें ।

<system.webServer>
    <staticContent>
        ...
    </staticContent>
</system.webServer>

स्थैतिक कार्यों को हटाना लेकिन अब मेरे सभी फोंट 404 हैं?
राजेश शिवशंकरन

मैं इस पर विशेषज्ञ नहीं हूं, लेकिन शायद आपको वेबसाइट के गुणों के HTTP हेडर टैब में IIS प्रबंधक के माध्यम से अपने फोंट के लिए सही MIME प्रकार की घोषणाओं को जोड़ने की आवश्यकता है।
इंट्रेपिडिस

1
इसने मेरे लिए समस्या को हल कर दिया, क्योंकि मेरे पास विकास में कुछ .woff फ़ाइल प्रविष्टियाँ हैं, लेकिन उत्पादन पर एक ही सेटअप के समायोजन की आवश्यकता है
GuideX

धन्यवाद निडर, मेरे मामले में आपके सुझाव ने मेरे लिए काम किया। चीयर्स!
user752746

15

यह आपके प्रश्न का उत्तर नहीं दे सकता है, लेकिन मैं अपने सिर को नए आईआईएस इंस्टॉलेशन के साथ समान लक्षणों से पीट रहा हूं। सीएसएस, जेएस और छवियां दिखाई नहीं दे रही थीं। "स्थैतिक सामग्री" भूमिका IIS 7.5 में स्थापित नहीं होने के कारण था।


आपके पास अलग-अलग समस्या हो सकती है और मेरा मुद्दा तब था जब मैं inetpub से निर्देशिका स्थानांतरित करता हूं जब मैं अपना मुद्दा ठीक किया गया था, तो यह अनुमतियाँ हटा देता है।
इमरान राशिद

7

संभवतः आपके पास अपने web.config में Windows प्रमाणीकरण सक्षम है। एक स्थानीय मशीन पर, आपके विंडोज क्रेडेंशियल स्वचालित रूप से पारित हो जाते हैं और यह काम करता है। एक लाइव साइट पर, आपको एक अनाम उपयोगकर्ता के रूप में माना जाता है (IE सेटिंग इसे नियंत्रित कर सकती है, लेकिन इसे संशोधित न करें जब तक कि आपको वास्तव में पता नहीं है कि आप क्या कर रहे हैं)।

इसके कारण निम्नलिखित हैं:

  • आपको स्पष्ट रूप से लॉगिन करने की आवश्यकता है।
  • स्क्रिप्ट और CSS जैसे संसाधन लॉगिन पृष्ठ पर नहीं दिए गए हैं क्योंकि आप प्रमाणित नहीं हैं।

यह टूट नहीं है, बस के रूप में काम कर रहा है, लेकिन इसे "ठीक" करने के लिए:

  • यदि आप कोई लॉगिन नहीं चाहते हैं, तो web.config में प्रमाणीकरण प्रकार बदलें।
  • और CSS (चित्र), स्क्रिप्ट, आदि युक्त डायरेक्टरी (ओं) में एक web.config जोड़ें, जो प्राधिकरण नियमों को निर्दिष्ट करता है।

प्रमाणीकरण मोड है प्रपत्र विंडो नहीं है? आवेदन वेब विन्यास फाइल ओवरराइड मशीन विन्यास? क्या IIS में कोई सेटिंग है जो इसका कारण बन रही है?
इमरान रशीद

प्रपत्र प्रमाणीकरण एक लॉगिन प्रॉम्प्ट को भी ट्रिगर करेगा और स्क्रिप्ट और छवियों जैसे संसाधनों को परोसने से रोकेगा। उन विशिष्ट परिवर्तनों के लिए अन्य उत्तर देखें जिन्हें आपको web.config में करने की आवश्यकता होगी। IIS में सेटिंग सहेजना वेब कॉन्फिगर को संशोधित करेगा।
टिम मेडोरा 9:12

मैं इसे स्वयं हल करता हूं। समस्या तब होती है जब मैं अपने नेटवर्क पर wwwroot फ़ोल्डर साझा करता हूं। यह निर्देशिका की अनुमति को बदल देता है। जब मैं अनशेयर करता हूं और डिफॉल्ट करने की अनुमति देता हूं। यह हल हो गया :) धन्यवाद टिम
इमरान राशिद

6

इसे अपने web.config में जोड़ें

<location path="Images">
    <system.web>
        <authorization>
            <allow users="*" />
        </authorization>
    </system.web>
</location>

रास्ता सापेक्ष है, कभी-कभी जड़ को जोड़ने से यह हल हो जाएगा। "~/Images"
15'15

6

इसे अपने web.config फ़ाइल के कॉन्फ़िगरेशन अनुभाग में उपयोग करें:

<location path="images">
<system.web>
  <authorization>
    <allow users="*"/>
  </authorization>
</system.web>
</location>
<location path="css">
<system.web>
  <authorization>
    <allow users="*"/>
  </authorization>
</system.web>
</location>
<location path="js">
<system.web>
  <authorization>
    <allow users="*"/>
  </authorization>
</system.web>
</location>

6

यह विंडोज़ की अनुमति का मुद्दा था मैंने फ़ोल्डर को स्थानांतरित किया यह गलत अनुमतियाँ विरासत में मिली। जब मैं wwwroot फ़ोल्डर में जाता हूं और iis उपयोगकर्ता की अनुमति जोड़ता हूं तो यह ठीक काम करना शुरू कर देता है।


1
मेरे पास एक ही समस्या थी, बस प्रोजेक्ट फ़ाइलों desktopको wwwroot फ़ोल्डर से स्थानांतरित कर दिया , इसके अलावा मैंने नेटवर्क सेवा पर पूर्ण नियंत्रण जोड़ दिया है, जो एप्लिकेशन पूल से संबंधित है।
मिहकोव

3

मेरे लिए इस web.configसमस्या को हल करने में जोड़ना

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true" >
      <remove name="UrlRoutingModule"/>    
    </modules>
</system.webServer>

2

मेरे घंटे का दर्द वेब में MIME प्रकारों को परिभाषित करने के कारण था। मुझे विकास सर्वर के लिए इसकी आवश्यकता थी लेकिन स्थानीय आईआईएस ने इससे नफरत की क्योंकि यह MIME प्रकारों की नकल करता था ... एक बार मैंने इन्हें वेब से हटा दिया। js, css और लोड नहीं होने वाली छवियों से समस्या दूर हो गई।


यह विश्वास करना मुश्किल है कि यह MIME प्रकारों का डुप्लिकेट हो सकता है! मैंने कम से कम एक घंटे तक अलग-अलग उपयोगकर्ता अनुमतियों, आदि आदि की कोशिश की, लेकिन यह समाप्त हो गया मेरे वेब में नकल MIMEs।
हारून हडॉन

2

यह एक प्रमाणीकरण समस्या है। मेरे मामले में, यह नीचे दिए चरणों द्वारा हल किया गया है: 1- बाएं फलक में IIS प्रबंधक पर जाएं, सर्वर रूट का विस्तार करें और साइट नोड से अपना वेब एप्लिकेशन चुनें। 2- होम स्क्रीन में, IIS सेक्शन में जाएं और ऑथेंटिकेशन चुनें। 3- बेनामी प्रमाणीकरण सक्षम करें। 4- इसके बाद, एडिट को चुनें और एडिट बेनामी ऑथेंटिकेशन क्रेडेंशियल्स को एप्लिकेशन पूल आइडेंटिटी पर सेट करें।

अनाम प्रमाणीकरण क्रेडेंशियल


मैंने उसी कदम का पालन किया और समस्या हल हो गई। धन्यवाद अलीरज़ा।
अरविंद गौतम

1

मेरे मामले में,

IIS सब कुछ के साथ लोड कर localhostसकता है, लेकिन मेरी टेम्पलेट फ़ाइलों app.tagको लोड नहीं कर सकता है192.168.0.123

क्योंकि .tagसूची में विस्तार नहीं था।

IIS MIME प्रकार


1

इसे ठीक करने के लिए:

इंटरनेट सूचना सेवा (IIS) पर जाएं

आप जिस वेबसाइट पर इमेज लोड करने की कोशिश कर रहे हैं उस पर क्लिक करें

IIS अनुभाग के अंतर्गत, प्रमाणीकरण मेनू खोलें और साथ ही Windows प्रमाणीकरण सक्षम करें।


1

एक सुझाव मैंने पाया है कि अतीत में जब उत्पादन साइट की एक प्रति के साथ काम करते समय स्थानीयहोस्ट टेस्ट वातावरण में साइटों को विकसित करने में मदद मिलती है। सुनिश्चित करें कि आप विहित टैग टिप्पणी करते हैं:

  <!--<base href="http://www.example.com/">//-->

1

यदि आपने उपरोक्त सभी समाधानों की कोशिश की है और अभी भी समस्याएं हैं, तो ASP.NET की रिज़ॉल्यूशनक्लाइंटयूआरएल () विधि का उपयोग करने पर विचार करें।

उदाहरण के लिए एक स्क्रिप्ट:

के बजाय का उपयोग करने का

<script src="~/dist/js/app.min.js" ></script>

विधि का प्रयोग करें

<script src="<%= ResolveClientUrl("~/dist/js/app.min.js") %>" ></script>

यह मेरा समाधान था जो एक दोस्त के लिए काम कर रहा था जो मैं मदद कर रहा था!


1

मुझे भी बिल्कुल यही समस्या है। मेरे लिए, यह कैश-कंट्रोल हेडर के कारण IIS में सर्वर स्तर पर नो-कैश, नो-स्टोर में सेट किया गया था। इसलिए मेरे आवेदन के लिए मुझे अपने web.config में नीचे जोड़ना होगा:

<httpProtocol>
    <customHeaders>
        <remove name="Cache-Control" />
    </customHeaders>
</httpProtocol>

0

इसका एक संभावित कारण यह है कि आपका आवेदन पोर्ट 443 (मानक एसएसएल पोर्ट) पर चलने की उम्मीद करता है और पोर्ट 443 पहले से ही उपयोग में है। मैं कई बार डेवलपर्स में हमारे एप्लिकेशन को चलाने की कोशिश कर रहा हूं, जबकि Skype उनके कंप्यूटर पर चल रहा है।

अविश्वसनीय रूप से, Skype पोर्ट 443 पर चलता है। यह मेरी राय में एक भयानक डिजाइन दोष है। यदि आप अपने एप्लिकेशन को 443 के बजाय 444 पर चलने का प्रयास करते हुए देखते हैं, तो Skype बंद कर दें और समस्या दूर हो जाएगी।


0

मैंने app.UseStaticFiles();यह कोड starup.cs में कॉन्फ़िगर विधि से जोड़ा है , यह तय है।

और इस फ़ोल्डर पर अपनी अनुमति की जाँच करें।



0

मेरे मामले में जब मेरे किसी भी जावास्क्रिप्ट, पीएनजी, या सीएसएस फाइलें लोड नहीं हो रही थीं, मैंने ऊपर दिए गए अधिकांश उत्तरों की कोशिश की और कोई भी ऐसा नहीं कर पाया।

मैंने आखिरकार " अनुरोध फ़िल्टर " पाया , और वास्तव में एक सक्षम / स्वीकृत फ़ाइल प्रकार के रूप में .js, .png, .cs को जोड़ना था।

एक बार जब मैंने यह बदलाव किया, तो सभी फाइलें ठीक से परोसी जा रही थीं।


0

यदि आप अपने ब्राउज़र कंसोल में 403 त्रुटियां देख रहे हैं, तो अपने MVC बंडल कॉन्फ़िगरेशन की जाँच करें। बंडल नाम आपके प्रोजेक्ट में मौजूद किसी भी फ़ोल्डर नाम से मेल नहीं खाना चाहिए।

जैसे।

bundles.Add(new StyleBundle("~/Content/css")...

... IIS के लिए समस्याएँ उत्पन्न होती हैं यदि फ़ोल्डर संरचना $ (ProjectDir) \ Content \ css आपके प्रोजेक्ट में मौजूद है, क्योंकि यह बंडल सामग्री के लिए मौजूदा फ़ोल्डर के भीतर देखने की कोशिश करता है जो कि नहीं है।

इसके बजाय बस कुछ का उपयोग करें:

bundles.Add(new StyleBundle("~/Content/cssbundle")...

0

यह समस्या तब होती है जब IIS आपके जेएस, सीएसएस, छवि फ़ाइलों जैसी स्थिर सामग्री को प्रस्तुत नहीं करता है।

इस समस्या को हल करने के लिए, आपको निम्न चरणों का पालन करने की आवश्यकता है:

कंट्रोल पैनल पर जाएं> विंडोज सुविधाओं को चालू या बंद करें> इंटरनेट सूचना सेवाएं> वर्ल्ड वाइड वेब सेवाएं> सामान्य HTTP विशेषताएं> स्टेटिक कंटेंट।

सुनिश्चित करें कि स्थिर सामग्री चालू है।

बिंगो। और आप कर रहे हैं। पृष्ठ को पुनः लोड करें और आप सभी स्थिर सामग्री देख पाएंगे।


0

मेरे पास एक ही समस्या थी, सभी सुझावों की कोशिश की लेकिन कुछ भी नहीं मिला। मुझे घंटों लताड़ा। कुछ कारणों से मेरे ISP अवरुद्ध पोर्ट 80 को बंद कर दिया।

सलाह: अपने ट्रैफ़िक की जाँच करें। सुनिश्चित करें कि पोर्ट 80 स्थानीय (यानी फ़ायरवॉल) और बाहरी दोनों तरह से काम करता है।

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