2012-07-14 8 views
6

Estoy usando el YUI compressor plugin para comprimir y descomprimir archivos JS y CSS dentro de mi aplicación Java EE.Hace referencia a gzip comprimido CSS y JS en HTML/JSPs

Sin embargo, no tengo claro cómo hacer referencia a ellos en mis archivos HTML/JSP.

Si simplemente uso la referencia .gzip, obviamente, el navegador se queja diciendo -

Resource interpreted as Script but transferred with MIME type application/x-gzip

La referencia actual se parece a esto (que lanza el error anterior):

<script type="text/javascript" src="/scripts/home.js.gz"></script> 
+0

La compresión es una función HTTP, [su servidor debería hacerlo por usted] (http://sourceforge.net/projects/mod-gzip/), no debería necesitar pregzip de sus archivos. – robertc

Respuesta

1

Usted consúltelos con las extensiones normales .js y .css y compruebe si gzip funciona comprobando los encabezados de respuesta en los archivos CSS y JS inspeccionando mediante firebug o herramientas de desarrollador.

Gzipping normalmente se realiza en el nivel del servidor web.

Si está utilizando tomcat puede abrir conf/server.xml de su instalación de Tomcat y agregar lo siguiente a la definición de Connector.

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

Para Apache mirar hacia arriba o mod_gzip mod_deflate

Esto va en su archivo .htaccess de la raíz, pero si usted tiene acceso a httpd.conf que es mejor.

<ifModule mod_deflate.c> 
<filesMatch "\.(js|css)$"> 
SetOutputFilter DEFLATE 
</filesMatch> 
</ifModule> 
+0

intentaré esto y volveré ... – Saket

2

Lo que está viendo es una advertencia en su navegador, se mostrará esto en cualquier momento a interpretar los datos de manera diferente que el tipo de contenido devuelto.

Lo que está realmente tratando de hacer es esto:

Content-Type: text/javascript 
Content-Encoding: gzip 

se eliminará el error del navegador, sino también hacer que el navegador reconoce que este archivo debe ser descomprimido antes de su uso.

0

Aunque puede configurar el gato para hacer todo gzip para usted, le recomiendo a cremallera manualmente sus recursos estáticos como js y css archivos y guardarlos en su servidor como o js.gz, entonces usted puede utilizar un servlet para enviar estos archivos estáticos y precomprimidos al cliente, cuando entró una solicitud.

Consulte https://gist.github.com/suprememoocow/1570654 para la implementación del servlet.

Si su servidor tiene un mecanismo incorporado para manipular los archivos gzip, puede hacerlo. Por lo que veo, el tomcat (7) aún no tiene esta característica.

Cuestiones relacionadas