Gzip为html工作,但不是javascript或css(Apache)

时间:2015-12-04 15:45:40

标签: javascript apache .htaccess gzip

在我的网站上,hz文件被gzip压缩。

但是,javascript,css和svg文件不是。

服务器使用Apache / 2.2.22。

我正在使用HTML5boilerplate中的.htaccess文件。以下是相关部分:

<IfModule mod_filter.c>
    AddOutputFilterByType DEFLATE "application/atom+xml" \
                                  "application/javascript" \
                                  "application/json" \
                                  "application/ld+json" \
                                  "application/manifest+json" \
                                  "application/rdf+xml" \
                                  "application/rss+xml" \
                                  "application/schema+json" \
                                  "application/vnd.geo+json" \
                                  "application/vnd.ms-fontobject" \
                                  "application/x-font-ttf" \
                                  "application/x-javascript" \
                                  "application/x-web-app-manifest+json" \
                                  "application/xhtml+xml" \
                                  "application/xml" \
                                  "font/eot" \
                                  "font/opentype" \
                                  "image/bmp" \
                                  "image/svg+xml" \
                                  "image/vnd.microsoft.icon" \
                                  "image/x-icon" \
                                  "text/cache-manifest" \
                                  "text/css" \
                                  "text/html" \
                                  "text/javascript" \
                                  "text/plain" \
                                  "text/vcard" \
                                  "text/vnd.rim.location.xloc" \
                                  "text/vtt" \
                                  "text/x-component" \
                                  "text/x-cross-domain-policy" \
                                  "text/xml"

</IfModule>

它的价值 - 它与子文件夹无关。如果我把一个名为&#34; test.html&#34;的文件放入在主目录中 - 它被gzipped。如果我重命名它&#34; test.js&#34; - 它没有。

[UPDATE]

所以,这很愚蠢。

正如我所提到的,我使用的是html5boilerplate中的.htaccess文件。

当我仔细观察时,我注意到了这些注释:

# (!) For Apache versions below version 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.

这适用于我,因为服务器使用Apache / 2.2.22。

果然,只要我删除<IfModule mod_filter.c><IfModule mod_filter.c>,一切都会正常运行(即,该列表中包含的javascript,css和其他文件类型 all gzipped。

我会留下这个问题,以防其他人犯同样的错误。

2 个答案:

答案 0 :(得分:1)

看起来你错过了什么:

AddType image/svg+xml .svg

AddOutputFilterByType DEFLATE image/svg+xml

https://stackoverflow.com/a/21533084/1491007

最佳, 拉尔夫

答案 1 :(得分:1)

所以,这很愚蠢。

正如我所提到的,我使用的是html5boilerplate中的.htaccess文件。

当我仔细观察时,我注意到了这些注释:

# (!) For Apache versions below version 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.

这适用于我,因为服务器使用Apache / 2.2.22。

果然,只要我删除<IfModule mod_filter.c><IfModule mod_filter.c>,一切都会正常运行(即,该列表中包含的javascript,css和其他文件类型 all gzipped。

我会留下这个答案,以防万一其他人犯了同样的错误。