سؤال

لدي تطبيق نماذج ويب ASP.NET (3.5 SP1) أعمل عليه، وأحاول تمكين gzip fpr HTML وCSS الذي يأتي في المستقبل.أنا استخدم هذا التنفيذ (وجربت عددًا قليلًا من الأساليب الأخرى التي ترتبط بـ Application_BeginRequest)، ويبدو أنها تفسد ملف CSS الخارجي الذي تستخدمه الصفحات، ولكن بشكل متقطع... فجأة ستختفي جميع الأنماط عند تحديث الصفحة، وتظل على هذا النحو لفترة من الوقت، وبعد ذلك فجأة تبدأ العمل مرة أخرى.

يحمل كل من IE7 وFF3 هذا السلوك.عند عرض ملف CSS باستخدام شريط أدوات مطور الويب، فإنه يُرجع هراء.يأتي رأس التحكم في ذاكرة التخزين المؤقت على أنه "خاص"، لكنني لا أعرف ما يكفي لمعرفة ما إذا كان هذا عاملاً مساهماً أم لا.

كما يتم تشغيل هذا على خادم تطوير ASP.NET.ربما سيكون الأمر جيدًا مع IIS، لكنني أقوم بالتطوير على XP وسيكون IIS5.

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

المحلول

هل ملفات CSS فقط هي التي تتلف؟هل تأتي ملفات JS (أو أي ملفات نصية ثابتة أخرى) بشكل جيد؟

هل يمكنك أيضًا تكرار السلوك إذا قمت بالتصفح مباشرة إلى ملف CSS؟

لقد قمت فقط بتمكين الضغط على IIS الخاص بخادم Windows 2003 باستخدام هذا الأسلوب:

  1. IIS → مواقع الويب → الخصائص → علامة تبويب الخدمة، حدد كلا المربعين
  2. IIS → ملحقات خدمة الويب → انقر بزر الماوس الأيمن، أضف جديد
      Name
          Http Compression 
      Required Files
          %systemroot%\system32\inetsrv\gzip.dll 
  3. IIS → انقر بزر الماوس الأيمن فوق العقدة العليا، خدمات معلومات الإنترنت، تحقق تمكين تحرير قاعدة التعريف المباشرة
  4. النسخ الاحتياطي والتحرير %systemroot%\system32\inetsrv\MetaBase.xml
    1. يجد Location ="/LM/W3SVC/Filters/Compression/gzip"
      • يضيف png, css, js وأي امتدادات ملفات ثابتة أخرى لـ HcFileExtensions
      • يضيف aspx وأي ملحقات أخرى قابلة للتنفيذ ل HcScriptFileExtensions
      • يحفظ
  5. أعد تشغيل IIS (تشغيل iisreset)

إذا كان لديك خادم يعمل بنظام التشغيل Windows 2003/2008 للعب به، فيمكنك تجربة هذا الأسلوب.

نصائح أخرى

إذا كنت ستقوم بالنشر على IIS 6 أو IIS 7، فما عليك سوى استخدام ضغط IIS المدمج.نحن نستخدمه في مواقع الإنتاج لضغط HTML وCSS وJavaScript بدون أخطاء.كما أنه يقوم أيضًا بتخزين النسخة المضغوطة مؤقتًا على الخادم، لذلك يتم إجراء ضغط الضغط مرة واحدة فقط.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top