Warum beschädigt ASP.NET die gzip-Komprimierung von CSS?

9

Ich habe eine ASP.NET-Webformularanwendung (3.5 SP1), an der ich gerade arbeite, und versuche, gzip fpr HTML und CSS zu aktivieren, die in der Pipe kommen. Ich verwende diese Implementierung (und habe ein paar andere ausprobiert, die sich in Application_BeginRequest einklinken ), und es scheint die externe CSS-Datei zu beschädigen, die die Seiten verwenden, aber zeitweise ... plötzlich verschwinden alle Stile bei einer Seitenaktualisierung, bleiben so für eine Weile und beginnen dann plötzlich wieder zu arbeiten.

Sowohl IE7 als auch FF3 zeigen dieses Verhalten. Wenn Sie das CSS mithilfe der Webentwicklersymbolleiste anzeigen, wird Jibberish zurückgegeben. Der Cache-Control-Header kommt als "privat" durch, aber ich weiß nicht genug, um herauszufinden, ob das ein beitragender Faktor ist oder nicht.

Auch dies läuft auf dem ASP.NET Development Server. Vielleicht wäre es mit IIS in Ordnung, aber ich entwickle unter XP und es wäre IIS5.

    
Chris 22.08.2008, 14:33
quelle

2 Antworten

5

Werden nur CSS-Dateien beschädigt? JS-Dateien (oder andere statische Textdateien) kommen durch ok?

Können Sie das Verhalten auch duplizieren, wenn Sie direkt zur CSS-Datei navigieren?

Ich habe die Komprimierung auf dem IIS von Windows 2003 Server nur mit diesem Ansatz aktiviert:

  1. IIS → Websites → Eigenschaften → Registerkarte Service, aktivieren Sie beide Kontrollkästchen
  2. IIS → Webdiensterweiterungen → Rechtsklick, neue
      Name
          Http Compression 
      Required Files
          %systemroot%\system32\inetsrv\gzip.dll 
    hinzufügen
  3. IIS → Klicken Sie mit der rechten Maustaste auf den obersten Knoten, Internetinformationsdienste, und aktivieren Sie Direct Metabase Edit aktivieren
  4. Sichern und Bearbeiten %systemroot%\system32\inetsrv\MetaBase.xml
    1. Finde Location ="/LM/W3SVC/Filters/Compression/gzip"
      • Fügen Sie png , css , js und alle anderen statischen Dateierweiterungen zu HcFileExtensions hinzu.
      • Fügen Sie aspx und alle anderen ausführbaren Erweiterungen zu HcScriptFileExtensions hinzu.
      • Speichern
  5. Starten Sie IIS neu (run iisreset )

Wenn Sie einen Windows 2003/2008-Server zum Spielen haben, könnten Sie diesen Ansatz versuchen.

    
travis 22.08.2008, 14:57
quelle
0

Wenn Sie auf IIS 6 oder IIS 7 bereitstellen, verwenden Sie einfach die integrierte IIS-Komprimierung. Wir verwenden es auf Produktionsstandorten, um HTML, CSS und JavaScript fehlerfrei zu komprimieren. Außerdem wird die komprimierte Version auf dem Server zwischengespeichert, sodass der Komprimierungstreffer nur einmal verwendet wird.

    
Sean Carpenter 22.08.2008 14:52
quelle

Tags und Links