Sheixt
Sheixt

Reputation: 2624

Force GZIP compression on JavaScript files

I'm attempting to compress all of the website files to optimise the performance of the website. Thus far I have included the compression section from the HTML5 boilerplate .htaccess example.

Here is the relevant code snippet:

# ------------------------------------------------------------------------------
# | Compression                                                                |
# ------------------------------------------------------------------------------

<IfModule mod_deflate.c>

# Force compression for mangled headers.
# http://developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping
<IfModule mod_setenvif.c>
    <IfModule mod_headers.c>
        SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
        RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
    </IfModule>
</IfModule>

# Compress all output labeled with one of the following MIME-types
# (for Apache versions below 2.3.7, you don't need to enable `mod_filter`
#  and can remove the `<IfModule mod_filter.c>` and `</IfModule>` lines
#  as `AddOutputFilterByType` is still in the core directives).
<IfModule mod_filter.c>
    AddOutputFilterByType DEFLATE application/atom+xml \
                                  application/javascript \
                                  application/json \
                                  application/rss+xml \
                                  application/vnd.ms-fontobject \
                                  application/x-font-ttf \
                                  application/x-web-app-manifest+json \
                                  application/xhtml+xml \
                                  application/xml \
                                  font/opentype \
                                  image/svg+xml \
                                  image/x-icon \
                                  text/css \
                                  text/html \
                                  text/plain \
                                  text/x-component \
                                  text/xml
</IfModule>

</IfModule>

After reviewing gzipwtf.com it seems the clients website is GZIPing all of the CSS files but for some reason JavaScript is being ignored. I'm fairly new to the joys of .htaccess and this side of things, so I'm unsure how to go about forcing compression. Any suggestions?

Upvotes: 2

Views: 763

Answers (1)

Ja͢ck
Ja͢ck

Reputation: 173572

To ensure proper interoperability you need to specify two mime types for JavaScript:

application/javascript
text/javascript

There's one more, but afaict it was only used in the transition period:

application/x-javascript

Upvotes: 3

Related Questions