2011-09-06 13 views
39

मैंने अपने स्थानीयमाचिन पर वर्चुअल एप्लिकेशन स्थापित किया है और यह चल रहा है लेकिन यह सीएसएस फ़ाइल लोड नहीं कर रहा है। और मैं अपने आवेदन को स्टाइल करने के लिए lessCSS का उपयोग कर रहा हूं और मुझे लगता है कि यहां सीएसएस लोड नहीं करने का कारण यह है कि LESSCSS स्टाइल शीट का उपयोग नहीं किया जाता है।आईआईएस 7.0 में * .less कैसे जोड़ें?

तो * .less फ़ाइल एक्सटेंशन पढ़ने के लिए क्या करना है?

उत्तर

73

हैंडलर जोड़ने की कोई आवश्यकता नहीं है। .less के लिए बस एक एमआईएम प्रकार (अब इंटरनेट मीडिया प्रकार के रूप में जाना जाता है) जोड़ें और एमआईएमई प्रकार को text/css पर सेट करें।

वेब सर्वर अनुरोधों का विस्तार (फाइलों के एक्सटेंशन की तरह) देखते हैं। यदि वे एक्सटेंशन जानते हैं, तो वे फ़ाइल की सेवा करते हैं, और यह इंगित करने के लिए एक HTTP शीर्षलेख फ़ील्ड जोड़ते हैं कि फ़ाइल की सामग्री किस प्रारूप में है। उदाहरण के लिए, जब वे स्थिर HTML फ़ाइलों की सेवा करते हैं, तो वे Content-Type: text/html हेडर फ़ील्ड जोड़ते हैं। इस तरह, ब्राउज़र प्रतिक्रिया के शरीर को संसाधित करने के लिए कौन सा आवेदन उपयोग करने के लिए समझ सकते हैं।

यदि वेब सर्वर अनुरोध एक्सटेंशन को नहीं जानते हैं, तो वे यह देखने के लिए खोज करते हैं कि एक्सटेंशन पर कौन सा अन्य एप्लिकेशन इंस्टॉल है या नहीं। यदि कोई अन्य एप्लिकेशन है, तो उन्होंने उस एप्लिकेशन को फ़ाइल की सेवा करने दी।

आप इस उदाहरण के बारे में सोच सकते हैं पूरी तरह से समझने के लिए क्या होता है:

आप एक रेस्तरां में जाना है, (आप HTTP request हैं)। आप एक पिज्जा के लिए पूछते हैं (पिज्जा विस्तार है)। शेफ जानता है कि कैसे पिज्जा की सेवा करें, इस प्रकार यह आपको परोसता है।

अब मान लें कि आप एक ही रेस्तरां में दूसरी बार जाते हैं, और Bomyhoor (नकली भोजन) के लिए पूछते हैं। महाराज को यह नहीं पता कि उसे कैसे पकाना और उसकी सेवा करना है। वह अन्य कुकों को यह देखने के लिए कहता है कि क्या रसोईघर में पहले से कोई और है (रसोईघर वेब सर्वर है) जो जानता है कि उसे कैसे पकाया जाए? अगर कोई Boomyhoor पकाने के लिए हो जानता है, तो वह आपकी सेवा करता है।

अब, मान लें कि आप एक और समय जाते हैं, और इस बार Graboori के लिए पूछते हैं। शेफ पहले से ही जानता है (एक शब्दकोश से) कि Graboori पिज्जा के लिए सिर्फ एक और नाम है। क्योंकि वह जानता है कि पिज्जा को कैसे सर्वर करना है, वह बस उस परोसता है।

जब आप किसी वेब सर्वर पर कोई MIME प्रकार जोड़ते हैं, तो आप बस फ़ाइल प्रकार के लिए अनुरोध एक्सटेंशन को मैप करते हैं।

+6

मुझे लगता है कि ओपी ट्रांसफॉर्म सर्वर-साइड करने के लिए एक कस्टम HTTP हैंडलर का उपयोग करने के बारे में पूछ रहा था। लेकिन, less.js क्लाइंट-साइड विधि का उपयोग करते हुए आपका उत्तर सही है। – Domenic

+1

यह प्रत्येक उपयोगकर्ता के लिए फ्लाई पर करने के लिए सुपर भारी है। ओपी एक ऑटो-कंपाइलर की तलाश में था, इसलिए जब आप .less (और इसे सहेजते हैं) संपादित करते हैं तो यह इसे एक सीएसएस फ़ाइल में संकलित करता है और इसे सही स्थान पर रखता है। ग्रहण में विकास के लिए एक प्लग-इन है, और मुझे पता है कि आप लिनक्स बॉक्स पर कम कमांड के साथ लोड करने के लिए अपाचे सेट अप कर सकते हैं, लेकिन आईआईएस के लिए ऐसा लगता है कि आपको स्थानीय कंपाइलर का उपयोग करना होगा, या इसे एक सेवा समर्पित करें। – Relic

+6

कृपया ध्यान दें कि आपका वेबसर्वर HTTP त्रुटि कोड 406 लौटा सकता है - स्वीकार्य नहीं है यदि आप माइम प्रकार को टेक्स्ट/सीएसएस के रूप में परिभाषित करते हैं। आपको mimetype के रूप में पाठ/कम का उपयोग करना चाहिए। –

0

स्वीकृत उत्तर केवल 406 त्रुटि को ठीक करता है। एक 404 त्रुटि वर्णन कैसे यह त्रुटि ठीक किया जा सकता है यहां पाया जा सकता का सामना कर सकते हैं,: https://stackoverflow.com/a/28828628/3936440

0

आप अपने Web.config को

<staticContent> 
    <mimeMap fileExtension=".less" mimeType="text/css" /> 
</staticContent > 

जोड़ना होगा

नमूना:

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <system.webServer> 
    <staticContent> 
     <mimeMap fileExtension=".less" mimeType="text/css" /> 
    </staticContent > 
    <rewrite> 
     <rules> 
     <rule name="WordPress: http://YourSite.com" patternSyntax="Wildcard"> 
      <match url="*" /> 
      <conditions> 
      <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
      <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
      </conditions> 
      <action type="Rewrite" url="index.php" /> 
     </rule> 
     </rules> 
    </rewrite> 
    </system.webServer> 
    <system.web> 
    <authentication mode="None" /> 
    </system.web> 
</configuration> 
संबंधित मुद्दे