سؤال

أنا فقط ركض سرعة صفحة Google الطلب مقابل موقعنا وأحد التوصيات كان الاستفادة من التخزين المؤقت للمتصفح. توسيع هذا كشف ما يلي:

الموارد التالية القابلة للتخزين المؤقتة لها عمر نضارة قصير: حدد انتهاء صلاحية أسبوع واحد على الأقل في المستقبل للموارد التالية:

<قائمة طويلة من الصور >
<بعض ملفات JavaScript >

كيف يمكنني إطالة "عمر النضارة" لصور معينة؟

انه ASP.NET المشروع يعمل على IIS7.5

هل كانت مفيدة؟

المحلول

لقد وجدت الإجابة على سؤالي في مكان آخر على هذا الموقع. ووت! (لست متأكدًا من عدم ظهور ذلك عندما نشرت هذا لأول مرة ، لكن لا يهم ، وصلت إلى هناك في النهاية.)

بالنسبة للمهتمين ، كان هذا الإجابة (كما تم نشره بواسطة غابرييل مكادامز):


أنت تفعل ذلك في IIS. إذا كنت تستخدم IIS 7 ، فيمكنك إضافة الرأس في الويب الخاص بك. إنه في قسم System.Webserver.

<staticContent>
    <clientCache httpExpires="Sun, 29 Mar 2020 00:00:00 GMT" cacheControlMode="UseExpires" />
</staticContent>

سيؤدي ذلك إلى تعيين جميع المحتوى الثابت لإنهاء رأس HTTP إلى عام 2020. المحتوى الثابت يعني أي شيء لا يتم تقديمه من خلال محرك ASP.NET مثل الصور وملفات البرامج النصية وأوراق الأنماط.

أو لاستخدام انتهاء الصلاحية النسبية ، استخدم هذا:

<staticContent>
    <clientCache cacheControlMaxAge ="2.00:00:00" cacheControlMode="UseMaxAge" />
</staticContent>

سيؤدي ذلك إلى توزيع رأس HTTP على كل المحتوى الثابت إلى يومين.

نصائح أخرى

سيتعين عليك إضافة رأس انتهاء صلاحية إلى محتوى ثابت بما في ذلك الصور ، HTML ، JS ، CSS. يمكنك بسهولة إضافة رأس انتهاء الصلاحية في الويب الخاص بك system.webServer القسم باستخدام IIS7:

<staticContent>
    <clientCache httpExpires="Mon, 1 May 2020 05:00:00 GMT" cacheControlMode="UseExpires" />
</staticContent>

ما تريد عادة هو تخزين جميع الأصول (CSS و JS والصور) ، سيكون ملف HTML çache خرق الروابط بحيث لا يزال بإمكانك تحديث الصور.

لكي ينجح هذا ، لا يمكن أن تكون ملفات HTML جزءًا من staticContent. إن إضافة معالج جديد لملفات HTML يمنعهم من التخزين المؤقت بشكل دائم.

    <staticContent>
        <clientCache httpExpires="Sun, 29 Mar 2020 00:00:00 GMT" cacheControlMode="UseExpires" />
    </staticContent>
    <handlers>
      <add
        name="HtmlHandler"
        path="*.html"
        verb="*"
        type="System.Web.Handlers"
        preCondition="integratedMode"
      />
    </handlers>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top