Zur Navigation

gzip Problem

1 Horst_Braun

Hallo ich bin es wieder,

die .js Dateien auf meiner Seite sind mittlerweile recht datenlastig. Somit hab ich diese noch als .js.gz dateien in meinen Ordner gelegt und meine htacces wie folgt angepasst:

RewriteCond %{HTTP:Accept-Encoding} .*gzip.*
RewriteRule ^js/(.*)\.js$ /js/$1.js.gz [L]
AddEncoding x-gzip text.gz

Warum geht das denn nicht?

Vielen Dank im Voraus!

08.06.2011 21:56

2 Jörg Kruse

"text.gz" passt nicht zu der Endung, die du rewritest - versuch es mal mit "js.gz"

Ansonsten das "geht nicht" bitte genauer beschreiben

09.06.2011 08:25

3 Horst_Braun

"geht nicht" bedeutet in dem Fall, dass das System immer noch die ungepackten .js Files benutzt, welche sehr groß sind.

Mit den htaccess Regeln muss ich die links im Head doch nichts mehr ändern. Da werden noch die normalen .jd Dateien geladen.

09.06.2011 09:44

4 Jörg Kruse

"geht nicht" bedeutet in dem Fall, dass das System immer noch die ungepackten .js Files benutzt, welche sehr groß sind.

Wie stellst du das denn genau fest - anhand der HTTP-Header des Servers? Der Dateiname bleibt wegen des Rewrites ja derselbe und im Browser wird dir die entpackte Version gezeigt.

Gegebenenfalls musst du die js Dateien mit einem Strg + F5 im Browser auch erst neu laden, da diese gerne im Cache gehalten werden.

09.06.2011 10:09

5 Horst_Braun

Ich teste meine Seite bei seitenreport.de/. Dort steht dann was wie lange lädt und wie groß das ganze ist.

Und wenn ich die normale js lösche, dann geht das Script darin nicht mehr.

09.06.2011 10:20 | geändert: 09.06.2011 10:23

7 Jörg Kruse

Sendet seitenreport.de denn den passenden Accept-Encoding Header? ich würde mich hier nicht auf ein externes Tool verlassen. Mit der Webdeveloper Toolbar in Firefox kannst du unter Informationen -> "Antwort Header anzeigen" die HTTP-Header des Webservers für die betreffende Datei sehen. Dazu musst du natürlich die js Datei direkt im Browser aufrufen - nicht die html Datei, in welche erstere eingebunden ist.

als Beispiel die css Datei hier im Forum:

http://forum.joergkrusesweb.de/styles/standard-1-v69.css

dort zeigt die Webdeveloper Toolbar u.a. diesen Header an:

Content-Encoding: gzip

... was bedeutet, dass die Datei komprimiert übertragen wurde

Detailliertere Ergenisse als die Webdeveloper Toolbar liefert die Firefox Erweiterung Live HTTP Headers - die zeigt dann auch an, wenn eine Datei nicht neu geladen wurde (z.B. bei Status Code 304)

09.06.2011 10:42

8 Horst_Braun

Ich glaube ich hab den Fehler soweit ausfindig gemacht.

Es gibt noch eine andere Zeile bei mir in der htaccess:
RewriteRule ^js/(.*)$ - [L,NE] 


Wenn ich
RewriteCond %{HTTP:Accept-Encoding} .*gzip.*
RewriteRule ^js/(.*)\.js$ /js/$1.js.gz [L]
AddEncoding x-gzip text.gz

vor diese obere Ziele schreibe, dann kommen sie Scripte Gzip an, aber im System funktionieren sie nicht mehr.

Wenn ich die Zeile unter die andere setze, dann gehen sie wieder, aber s geht kein Gzip.

09.06.2011 11:13

9 Jörg Kruse

Was heißt "im System funktionieren sie nicht mehr"?

Ruf die js Dateien direkt im Browser auf, dann werden dir dort etwaige Fehler angezeigt

Wie schon in Beitrag 2 geschrieben, passt das "text.gz" nicht zu den Rewrites

09.06.2011 11:18

10 Horst_Braun

Folgende Zeilen stehen nun ganz oben in der htaccess:
RewriteCond %{HTTP:Accept-Encoding} .*gzip.*
RewriteRule ^js/(.*)\.js$ /js/$1.js.gz [L]
AddEncoding x-gzip js.gz

Wenn ich jetzt z.B.
http://www.patch-your-games.com/js/jquery.colorbox-min.js

aufrufe, dann will der Browser die gz Datei herunterladen. Sonst hat der die immer als .js direkt angezeigt. Also gehe ich davon aus, dass die gz Umleitungen funktionieren.

Aber auf der Homepage z.B.
http://www.patch-your-games.com/pc-screenshots/screenshots.html

wird das Script nicht mehr geladen, also geht der Tabellenfilter usw. nicht mehr.

09.06.2011 11:26