2008-12-17 21 views
8

Estoy usando Apache.Compresión de Javascript a través de .htaccess?

Estoy auto gzip de mis archivos HTML & CSS sobre la marcha usando la siguiente directiva en mi archivo .htaccess.

# Enable ETag 
FileETag MTime Size 


# Set expiration header 
ExpiresActive on 
ExpiresDefault "access plus 1 year" 
ExpiresByType image/gif A2592000 
ExpiresByType image/png A2592000 
ExpiresByType image/jpeg A2592000 
ExpiresByType text/css A2592000 
ExpiresByType text/javascript A2592000 
ExpiresByType text/js A2592000 


# Compress some text file types 
AddOutputFilterByType DEFLATE text/html text/css text/xml application/x-javascript text/javascript text/js 


# Deactivate compression for buggy browsers 
BrowserMatch ^Mozilla/4 gzip-only-text/html 
BrowserMatch ^Mozilla/4\.0[678] no-gzip 
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html 

Sin embargo, cuando se utiliza el complemento Firebug para Firefox, noto que mis archivos JavaScript no están siendo comprimidos con gzip (sólo mi HTML y archivos CSS son).

¿Alguna idea de por qué mis archivos de JavaScript no están siendo grabados sobre la marcha por Apache?

Respuesta

3

¿Has declarado el texto/javascript tipo MIME en Apache? Si sus puntos de configuración del servidor para, por ejemplo, un archivo mime.types con uno de estos:

TypesConfig /private/etc/apache2/mime.types 

entonces dicho archivo debe incluir esta línea:

application/javascript    js 

De lo contrario, debería ver una de ellas en alguna parte:

Al menos, esta es mi primera suposición, si los archivos HTML y CSS se están comprimiendo y los archivos JavaScript no.

8

lo he descubierto, parece que necesito que sea:

AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml application/x-javascript text/javascript application/javascript 

Para obtener Javascript para comprimir/gzip

+0

usando esto, todavía tengo el mismo problema. Los archivos Javascript y Css no están comprimidos. –

+0

No funciona para mí tampoco. – sholsapp

1

trate de poner sus declaraciones en líneas separadas. Aquí está la parte relevante de uno de mis archivos .htaccess que está funcionando como se desea. Si mantiene sus scripts en un directorio separado (como/js), este archivo también debe estar en ese directorio.

AddOutputFilterByType DEFLATE text/plain 

AddOutputFilterByType DEFLATE text/html 

AddOutputFilterByType DEFLATE text/xml 

AddOutputFilterByType DEFLATE text/css 

AddOutputFilterByType DEFLATE text/javascript 

AddOutputFilterByType DEFLATE text/js 

AddOutputFilterByType DEFLATE application/xml 

AddOutputFilterByType DEFLATE application/xhtml+xml 

AddOutputFilterByType DEFLATE application/rss+xml 

AddOutputFilterByType DEFLATE application/javascript 

AddOutputFilterByType DEFLATE application/x-javascript 
Cuestiones relacionadas