2012-06-05 14 views
6

Ich habe eine jsf-anwendung (mojarra 2.1.8, primefaces 3.3) läuft auf tomcat 6. Während die seite in firebug mit google page-geschwindigkeit analysierte, realisierte ich, dass ich etwas durch gzip-kompression optimieren konnte .gzip kompression für jsf stuff

Compressing the following resources with gzip could reduce their transfer size by 371,1KiB (74% reduction). 

Compressing http://localhost:8080/someApp/javax.faces.resource/jquery/jquery.js.jsf?ln=primefaces could save 72,5KiB (74% reduction). 
Compressing http://localhost:8080/someApp/javax.faces.resource/theme.css.jsf?ln=primefaces-aristo could save 53,4KiB (71% reduction). 
Compressing http://localhost:8080/someApp/javax.faces.resource/jsf.js.jsf?ln=javax.faces could save 49,6KiB (78% reduction). 
... 

drehte ich mich schon auf Kompression in meinem server.xml

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" 
     compression="on" 
     noCompressionUserAgents="gozilla, traviata" 
     compressableMimeType="text/html,text/xml,text/plain,application/javascript,application/json,text/javascript"/> 

Aber es nicht komprimiert die genannten Dateien, die oben aufgelistet.

Was muss ich noch tun, damit die Kompression funktioniert?

Jonny

+0

Was ist der MIME-Typ Ihrer .js.jsf und .css.jsf Ressourcen? Welchen Client verwenden Sie zum Testen? –

+0

Hallo Christoper, danke für deine Antwort. Diese Ressourcen werden von Primefaces on the fly zur Verfügung gestellt. .js.jsf hat application/javascript (in compressableMimeType aufgelistet) und .css.jsf hat text/css (ok, ist in compressableMimeType nicht aufgeführt). Mein Kunde: Der neueste Chrome Browser auf WinXP. Jonny – user871611

+0

Erhalten Sie den richtigen Content-Type-Header in der Antwort beim Anfordern dieser Ressourcen vom Server? Erhalten Sie auch einen Content-Length-Header? –

Antwort

6

Ihr server.xml ist alles in Ordnung. Ihr konkretes Problem ist höchstwahrscheinlich, dass Sie die falsche server.xml Datei bearbeitet haben. In einer IDE wie Eclipse wird die ursprüngliche Tomcat-Serverinstallation standardmäßig nicht geändert. Stattdessen erstellt Eclipse eine Kopie aller Konfigurationsdateien im Projekt Server und verwendet die Metadaten des Arbeitsbereichs zum Bereitstellen der Webapps und schließlich wird nur die Tomcat-Server-Engine von der Tomcat-Installation verwendet.

Achten Sie darauf, dass Sie die richtigen server.xml Datei bearbeiten, die man in Server Projekt:

enter image description here

Tomcat eigene /conf/server.xml Datei nur dann verwendet wird, wenn Sie es außerhalb von Eclipse starten, oder wenn Sie Erklären Sie Eclipse, stattdessen die vollständige Kontrolle über die Tomcat-Installation zu übernehmen. Um dies zu tun, doubleclick den Tomcat-Server-Eintrag in Server anzeigen und ändern Sie die Server-Standorte entsprechend.

enter image description here

+0

Hallo BalusC, danke für detaillierte Informationen. Ich habe die richtige server.xml in meinem Server-Projekt bearbeitet. Der Text/html ist gziped, aber nicht die css und js Sachen. Macht mich verrückt :). Jonny – user871611

+1

Sie haben kein 'text/css' in Ihrer' compressableMimeType' Liste. Sind Sie sicher, dass Sie die richtige Antwort suchen? Antworten auf Cache Verifizierungsanfragen wie 304 "Not Modified" Antworten werden natürlich NICHT gezippt. – BalusC

+0

Hallo BalusC, ich habe bereits den Text/css-compressableMimeType hinzugefügt. Aber du hast mein Problem im zweiten Teil deines Kommentars beantwortet. Ich habe meinen Cache geleert und jetzt funktioniert es. Tausend Dank BalusC – user871611