IIS7 में स्थिर सामग्री कैश प्रति फ़ोल्डर और एक्सटेंशन को कैसे कॉन्फ़िगर करें?


143

मैं अपनी ASP.NET वेबसाइट में स्थिर सामग्री कैशिंग के लिए IIS7 में नियम स्थापित करना चाहूंगा।

मैंने इन लेखों को देखा है, जिसमें बताया गया है कि <clientCache />तत्व का उपयोग करते हुए इसे कैसे करना है web.config:

क्लाइंट कैश <clientCache>(IIS.NET) IIS में स्थिर सामग्री के लिए एक्सपायर
या कैश कंट्रोल हैडर जोड़ें (ढेर अतिप्रवाह)

हालाँकि, यह सेटिंग वैश्विक रूप से सभी स्थिर सामग्री पर लागू होती है। वहाँ सिर्फ कुछ निर्देशिकाओं या एक्सटेंशन के लिए ऐसा करने का एक तरीका है?

उदाहरण के लिए, मेरे पास दो निर्देशिकाएं हो सकती हैं जिनके लिए अलग कैश सेटिंग्स की आवश्यकता होती है:

/static/images
/content/pdfs

यह संभव कैश शीर्षलेख भेजने के लिए नियमों को स्थापित करने के लिए है ( max-age, expiresएक्सटेंशन और फ़ोल्डर पथों पर आधारित, आदि)?

कृपया ध्यान दें, मुझे यह करने में सक्षम होना चाहिए web.configक्योंकि मेरे पास IIS कंसोल तक पहुंच नहीं है।

जवाबों:


217

आप अपने रूट में संपूर्ण फ़ोल्डर के लिए विशिष्ट कैश-हेडर सेट कर सकते हैं web.config:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <!-- Note the use of the 'location' tag to specify which 
       folder this applies to-->
  <location path="images">
    <system.webServer>
      <staticContent>
        <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="00:00:15" />
      </staticContent>
    </system.webServer>
  </location>
</configuration>

या आप web.configसामग्री फ़ोल्डर में एक फ़ाइल में इन्हें निर्दिष्ट कर सकते हैं :

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <staticContent>
      <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="00:00:15" />
    </staticContent>
  </system.webServer>
</configuration>

मैं विशिष्ट फ़ाइल प्रकारों को लक्षित करने के लिए एक अंतर्निहित तंत्र से अवगत नहीं हूं।


1
महान। क्या आप मुझे IIS 7 के बारे में एक पुस्तक सुझाएंगे? मैं इन चीजों के बारे में सीखना चाहूंगा। धन्यवाद।
vtortola

5
@vtortola - [IIS7 संसाधन किट] (: amazon.co.uk/dp/0735624410 ) के साथ आप गलत नहीं कर सकते , यह वास्तव में काफी उपयोगी है। Wrox प्रो IIS7 पुस्तक बुरा या तो नहीं है। TBH मैंने ज्यादातर IIS.NET कॉन्फिगर रेफरेंस साइट से सीखा: iis.net/ConfigReference और %systemroot%\system32\inetsrv\config\applicationhost.configफाइल और संबंधित दोस्तों के बारे में जानने के लिए ।
केव

7
किसी को पता है अगर यह पुनरावर्ती है? उदाहरण यदि आपके पास आपके चित्र पथ के तहत उप फ़ोल्डर हैं, तो क्या यह उन लोगों को भी कैश करेगा?
स्टफंडबलाह

1
ध्यान देने वाली बात यह है कि ब्राउज़र को path=""संवेदनशील के रूप में देखने के लिए प्रतीत होता है
क्रिस एस

9
@StuffandBlah हां, यह पुनरावर्ती है। बस इसे स्वयं आज़माया और IIS ने "स्थान" के रूप में निर्दिष्ट फ़ोल्डर के सबफ़ोल्डर में फ़ाइलों के सभी अनुरोधों के लिए एक ही कैश कंट्रोल सेटिंग लागू की।
एरिक Eजैबो

68

आप इसे प्रति फ़ाइल आधार पर कर सकते हैं। फ़ाइल नाम शामिल करने के लिए पथ विशेषता का उपयोग करें

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <location path="YourFileNameHere.xml">
        <system.webServer>
            <staticContent>
                <clientCache cacheControlMode="DisableCache" />
            </staticContent>
        </system.webServer>
    </location>
</configuration>

1
और अगर आप इसे किसी विशिष्ट एक्सटेंशन की सभी फाइलों पर लागू करना चाहते हैं? .xml या * .xml अकेला काम करेगा?
जुलग्रीब

2
@Zulgrib इसे एक विशिष्ट एक्सटेंशन पर लागू करने के लिए आप आउटबाउंड रीराइट नियमों का उपयोग कर सकते हैं: stackoverflow.com/questions/32987486/…
jotap

@Zulgrib हम एक से अधिक फ़ाइल के लिए स्थान टैग का उपयोग कैसे करते हैं, लेकिन एक प्रकार की सभी फ़ाइलें नहीं। उदाहरण के लिए रूट फ़ोल्डर में jpg फ़ाइलों के जोड़े लेकिन सभी नहीं?
रहटुर

-2

मेरे पास एक ही मुद्दा था। मेरे लिए समस्या यह थी कि छवियों के लिए कैश की सीमा को कैसे कॉन्फ़िगर किया जाए। और मैं इस साइट पर आया था जिसने इस प्रक्रिया को कुछ अंतर्दृष्टि दी कि कैसे समस्या को संभाला जा सकता है। यह आपके लिए भी उपयोगी होगा। : [ https://varvy.com/pagespeed/cache-control.html]


2
कृपया अपने जवाब के लिए लिंक से कुछ जानकारी जोड़ने पर विचार करें stackoverflow.com/help/how-to-answer : बाहरी संसाधनों के लिंक को प्रोत्साहित किया जाता है, लेकिन कृपया लिंक के चारों ओर संदर्भ जोड़ें, ताकि आपके साथी उपयोगकर्ताओं को कुछ पता चले कि यह क्या है और यह क्यों है। हमेशा एक महत्वपूर्ण लिंक का सबसे प्रासंगिक हिस्सा उद्धृत करें, यदि लक्ष्य साइट उपलब्ध नहीं है या स्थायी रूप से ऑफ़लाइन है।
ग्रेग इनक्रेडुलस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.